首页 > 编程 > Python > 正文

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

2020-01-04 15:02:34
字体:
来源:转载
供稿:网友

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”列。

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


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表