基于DataFrame筛选数据与loc的用法详解

DataFrame筛选数据与loc用法

python中pandas下的DataFrame是一个很不错的数据结构,附带了许多操作、运算、统计等功能。

如何从一个DataFrame中筛选中出一个元素呢。

以tushare返回的交易日信息为例。

df = ts.trade_cal()

数据如下:

  calendarDate isOpen
0  1990/12/19  1
1  1990/12/20  1
2  1990/12/21  1
3  1990/12/22  0
4  1990/12/23  0
5  1990/12/24  1
6  1990/12/25  1
7  1990/12/26  1
8  1990/12/27  1
9  1990/12/28  1
10  1990/12/29  0
11  1990/12/30  0
12  1990/12/31  1
13  1991/1/1  0
14  1991/1/2  1
15  1991/1/3  1
16  1991/1/4  1
17  1991/1/5  0
18  1991/1/6  0
19  1991/1/7  1
20  1991/1/8  1
21  1991/1/9  1
22  1991/1/10  1
23  1991/1/11  1
24  1991/1/12  0
25  1991/1/13  0
26  1991/1/14  1
27  1991/1/15  1
28  1991/1/16  1
29  1991/1/17  1
...   ...  ...
9845 2017/12/02  0
9846 2017/12/03  0
9847 2017/12/04  1
9848 2017/12/05  1
9849 2017/12/06  1
9850 2017/12/07  1
9851 2017/12/08  1
9852 2017/12/09  0
9853 2017/12/10  0
9854 2017/12/11  1
9855 2017/12/12  1
9856 2017/12/13  1
9857 2017/12/14  1
9858 2017/12/15  1
9859 2017/12/16  0
9860 2017/12/17  0
9861 2017/12/18  1
9862 2017/12/19  1
9863 2017/12/20  1
9864 2017/12/21  1
9865 2017/12/22  1
9866 2017/12/23  0
9867 2017/12/24  0
9868 2017/12/25  1
9869 2017/12/26  1
9870 2017/12/27  1
9871 2017/12/28  1
9872 2017/12/29  1
9873 2017/12/30  0
9874 2017/12/31  0

如何取出某个日期的信息呢。例如年底了,想知道除夕前最后一个交易日是哪天。此处使用筛选功能。

df[df.calendarDate=="2017/12/31"]

输出如下:

>>> df[df.calendarDate=="2017/12/31"]
  calendarDate isOpen
9874 2017/12/31  0
>>> df[df.icol(0)=="2017/12/11"]
__main__:1: FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]
  calendarDate isOpen
9854 2017/12/11  1

注意一定要写上双等号一定要写上双等号一定要写上双等号。重要的事情说3遍。。。

因为如果是单等号,会报语法异常的。。。

loc函数

关于loc这个坑爹的函数的用法,咋说呢,不要被他的”纯以标签名来进行索引”迷惑了。因为如果你给Loc中的第一个参数一个str的话,极有可能返回的是一个异常,说不在index中。 。。。。

坑爹。。。。

这个loc的用法不是根据某个位置内容筛选的含义,仍然是对行、对列的一种筛选。比如你某行的索引自己设置标签啥的。。很让人一头雾水的设计。跟ix就是重复的。。。。

大多数情况下的应用场景就是还是用数字取行,用str取列。

比如loc[0:3,[“a”,”b”]]。取0到第3行(左闭右开,非整型值时左闭右闭。。。),”a”列与”b”列。

以上这篇基于DataFrame筛选数据与loc的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)

    pandas为我们提供了多种切片方法,而要是不太了解这些方法,就会经常容易混淆.下面举例对这些切片方法进行说明. 数据介绍 先随机生成一组数据: In [5]: rnd_1 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_2 = [random.randrange(1,20) for x in xrange(1000)] ...: rnd_3 = [random.randrange(1,20) for x in xrange(1

  • python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

  • pandas系列之DataFrame 行列数据筛选实例

    一.对DataFrame的认知 DataFrame的本质是行(index)列(column)索引+多列数据. 为了简化理解,我们不妨换个思路- 现实中,为了简化对一件事物的描述,我们会选择几个特征. 例如,从(性别.身高.学历.职业.爱好..)等角度去刻画一个人,这些"角度"即为"特征". 其中,不同的行表示不同的记录:列代表特征,不同记录因各个特征之间的差异而不同. DataFrame默认索引是序号(0,1,2-),可以理解成位置索引.一般我们用id标识不同记录,

  • 基于DataFrame筛选数据与loc的用法详解

    DataFrame筛选数据与loc用法 python中pandas下的DataFrame是一个很不错的数据结构,附带了许多操作.运算.统计等功能. 如何从一个DataFrame中筛选中出一个元素呢. 以tushare返回的交易日信息为例. df = ts.trade_cal() 数据如下: calendarDate isOpen 0 1990/12/19 1 1 1990/12/20 1 2 1990/12/21 1 3 1990/12/22 0 4 1990/12/23 0 5 1990/12

  • Python Pandas数据分析之iloc和loc的用法详解

    Pandas 是一套用于 Python 的快速.高效的数据分析工具.它可以用于数据挖掘和数据分析,同时也提供数据清洗功能.本篇目录如下: 一.iloc 1.定义 iloc索引器用于按位置进行基于整数位置的索引或者选择. 2.语法 df.iloc [row selection, column selection] 3.代码示例 (1)导入数据 (2)选择单行或单列 (3)选择多行或多列 (4)注意 iloc选择一行时返回Series,选择多行返回DataFrame,通过传递列表可转为DataFra

  • DataFrame.groupby()所见的各种用法详解

    groupby的函数定义: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) by :接收映射.函数.标签或标签列表:用于确定聚合的组. axis : 接收 0/1:用于表示沿行(0)或列(1)分割. level : 接收int.级别名称或序列,默认为None:如果轴是一个多索引(层次化),则按一个或多个特定级别分组.

  • 基于Python中求和函数sum的用法详解

    基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

  • 基于Python对数据shape的常见操作详解

    这一阵在用python做DRL建模的时候,尤其是在配合使用tensorflow的时候,加上tensorflow是先搭框架再跑数据,所以调试起来很不方便,经常遇到输入数据或者中间数据shape的类型不统一,导致一些op老是报错.而且由于水平菜,所以一些常用的数据shape转换操作也经常百度了还是忘,所以想再整理一下. 一.数据的基本属性 求一组数据的长度 a = [1,2,3,4,5,6,7,8,9,10,11,12] print(len(a)) print(np.size(a)) 求一组数据的s

  • 基于pytorch 预训练的词向量用法详解

    如何在pytorch中使用word2vec训练好的词向量 torch.nn.Embedding() 这个方法是在pytorch中将词向量和词对应起来的一个方法. 一般情况下,如果我们直接使用下面的这种: self.embedding = torch.nn.Embedding(num_embeddings=vocab_size, embedding_dim=embeding_dim) num_embeddings=vocab_size 表示词汇量的大小 embedding_dim=embeding

  • 基于MyBatis的数据持久化框架的使用详解

    目录 一.MyBatis是什么 1.1.概述 1.2.什么是持久化 1.3.什么是ORM 1.4.MyBatis主要内容 1.5.优点 1.6.缺点 二.MyBatis架构 2.1.mybatis所依赖的jar包 2.2.MyBatis准备工作 三.MyBatis 核心对象 一.MyBatis是什么 1.1.概述 Mybatis是一个优秀的开源.轻量级持久层框架,它对JDBC操作数据库的过程进行封装,简化了加载驱动.创建连接.创建 statement 等繁杂的过程,使开发者只需要关注sql本身.

  • Python Pandas数据合并pd.merge用法详解

    目录 前言 语法 参数 1.连接键 2.索引连接 3.多连接键 4.连接方法 5.连接指示 总结 前言 实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接.合并等操作 可以将两个DataFrame或Series合并,最终返回一个合并后的DataFrame 语法 pd.merge(left, right, how = 'inner', on = None, left_on = None, right_on = None, left_index = Fal

  • Unity3D游戏开发数据持久化PlayerPrefs的用法详解

    小编今天研究了在Unity3D中的数据持久化问题.数据持久化在任何一个开发领域都是一个值得关注的问题,小到一个应用中配置文件的读写,大到数据库的管理维护,都可以看到数据持久化的身影.小编在<C#基于Linq和反射实现数据持久化框架Xml4DB>这篇文章中曾介绍了博主在寒假期间开发的Xml4DB框架,这是一个基于Xml的轻量级数据持久化框架,可以采用面向对象的方式来处理数据.数据持久化从某种意义上来说,就是序列化和反序列化化的过程.在.NET中我们可以将对象序列化为Xml.Json.二进制.然后

  • Spring中基于Java的配置@Configuration和@Bean用法详解

    一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://ww

随机推荐