python筛选数据-基于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的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 基于DataFrame筛选数据与loc的用法详解

本文地址: http://www.cppcns.com/jiaoben/python/228501.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值