1、简单筛选
>>> dates = pd.date_range(‘20130101‘, periods=6) >>> df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=[‘A‘,‘B‘,‘C‘,‘D‘]) >>> print(df) A B C D 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23 >>> print(df[‘A‘]) 2013-01-01 0 2013-01-02 4 2013-01-03 8 2013-01-04 12 2013-01-05 16 2013-01-06 20 Freq: D, Name: A, dtype: int32 >>> print(df.A) 2013-01-01 0 2013-01-02 4 2013-01-03 8 2013-01-04 12 2013-01-05 16 2013-01-06 20 Freq: D, Name: A, dtype: int32 #选择跨越多行或多列 >>> print(df[0:3]) A B C D 2013-01-01 0 1 2 3 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 >>> print(df[‘20130102‘:‘20130104‘]) A B C D 2013-01-02 4 5 6 7 2013-01-03 8 9 10 11 2013-01-04 12 13 14 15 #如果df[3:3]将会是一个空对象。后者选择20130102到20130104标签之间的数据,并且包括这两个标签。
2、根据标签loc筛选
通过标签名字选择某一行数据, 或者通过选择某行或者所有行(:
代表所有行)然后选其中某一列或几列数据
>>> print(df.loc[‘20130102‘]) A 4 B 5 C 6 D 7 Name: 2013-01-02 00:00:00, dtype: int32 >>> print(df.loc[:,[‘A‘,‘B‘]]) A B 2013-01-01 0 1 2013-01-02 4 5 2013-01-03 8 9 2013-01-04 12 13 2013-01-05 16 17 2013-01-06 20 21 >>> print(df.loc[‘20130102‘,[‘A‘,‘B‘]]) A 4 B 5 Name: 2013-01-02 00:00:00, dtype: int32
3、根据序列iloc
通过位置选择在不同情况下所需要的数据例如选某一个,连续选或者跨行选等操作。
>>> print(df.iloc[3,1]) 13 >>> print(df.iloc[3:5,1:3]) B C 2013-01-04 13 14 2013-01-05 17 18 >>> print(df.iloc[[1,3,5],1:3]) B C 2013-01-02 5 6 2013-01-04 13 14 2013-01-06 21 22
4、混合loc、iloc两种的ix
>>> print(df.ix[:3,[‘A‘,‘C‘]]) A C 2013-01-01 0 2 2013-01-02 4 6 2013-01-03 8 10
5、通过判断的筛选
即可以采用判断指令 (Boolean indexing) 进行选择. 我们可以约束某项条件然后选择出当前所有数据.。
>>> print(df[df.A>8]) A B C D 2013-01-04 12 13 14 15 2013-01-05 16 17 18 19 2013-01-06 20 21 22 23
原文地址:https://www.cnblogs.com/anhoo/p/9383790.html
时间: 2024-09-29 18:48:31