DataFrame筛选数据与loc用法

来源:互联网 发布:高性能php架构 编辑:程序博客网 时间:2024/06/06 23:15

DataFrame筛选数据与loc用法

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

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

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

df = ts.trade_cal()

数据如下:

     calendarDate  isOpen0      1990/12/19       11      1990/12/20       12      1990/12/21       13      1990/12/22       04      1990/12/23       05      1990/12/24       16      1990/12/25       17      1990/12/26       18      1990/12/27       19      1990/12/28       110     1990/12/29       011     1990/12/30       012     1990/12/31       113       1991/1/1       014       1991/1/2       115       1991/1/3       116       1991/1/4       117       1991/1/5       018       1991/1/6       019       1991/1/7       120       1991/1/8       121       1991/1/9       122      1991/1/10       123      1991/1/11       124      1991/1/12       025      1991/1/13       026      1991/1/14       127      1991/1/15       128      1991/1/16       129      1991/1/17       1...           ...     ...9845   2017/12/02       09846   2017/12/03       09847   2017/12/04       19848   2017/12/05       19849   2017/12/06       19850   2017/12/07       19851   2017/12/08       19852   2017/12/09       09853   2017/12/10       09854   2017/12/11       19855   2017/12/12       19856   2017/12/13       19857   2017/12/14       19858   2017/12/15       19859   2017/12/16       09860   2017/12/17       09861   2017/12/18       19862   2017/12/19       19863   2017/12/20       19864   2017/12/21       19865   2017/12/22       19866   2017/12/23       09867   2017/12/24       09868   2017/12/25       19869   2017/12/26       19870   2017/12/27       19871   2017/12/28       19872   2017/12/29       19873   2017/12/30       09874   2017/12/31       0

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

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

输出如下:

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

注意一定要写上双等号一定要写上双等号一定要写上双等号。重要的事情说3遍。。。
因为如果是单等号,会报语法异常的。。。

loc函数

关于loc这个坑爹的函数的用法,咋说呢,不要被他的”纯以标签名来进行索引”迷惑了。因为如果你给Loc中的第一个参数一个str的话,极有可能返回的是一个异常,说不在index中。
。。。。
坑爹。。。。
这个loc的用法不是根据某个位置内容筛选的含义,仍然是对行、对列的一种筛选。比如你某行的索引自己设置标签啥的。。很让人一头雾水的设计。跟ix就是重复的。。。。
大多数情况下的应用场景就是还是用数字取行,用str取列。
比如loc[0:3,[“a”,”b”]]。取0到第3行(左闭右开,非整型值时左闭右闭。。。),”a”列与”b”列。

0 2
原创粉丝点击