Pandas 选择数据

网友投稿 644 2022-11-26

Pandas 选择数据

Pandas 选择数据

我们建立了一个 6X4 的矩阵数据。

dates = pd.date_range('20130101', periods=6)df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])""" A B C D2013-01-01 0 1 2 32013-01-02 4 5 6 72013-01-03 8 9 10 112013-01-04 12 13 14 152013-01-05 16 17 18 192013-01-06 20 21 22 23"""

简单的筛选

如果我们想选取​​DataFrame​​中的数据,下面描述了两种途径, 他们都能达到同一个目的:

print(df['A'])print(df.A)"""2013-01-01 02013-01-02 42013-01-03 82013-01-04 122013-01-05 162013-01-06 20Freq: D, Name: A, dtype: int64"""

让选择跨越多行或多列:

print(df[0:3]) """ A B C D2013-01-01 0 1 2 32013-01-02 4 5 6 72013-01-03 8 9 10 11"""print(df['20130102':'20130104'])"""A B C D2013-01-02 4 5 6 72013-01-03 8 9 10 112013-01-04 12 13 14 15"""

如果​​df[3:3]​​​将会是一个空对象。后者选择​​20130102​​​到​​20130104​​标签之间的数据,并且包括这两个标签。

根据标签 loc

同样我们可以使用标签来选择数据 ​​loc​​​, 本例子主要通过标签名字选择某一行数据, 或者通过选择某行或者所有行(​​:​​代表所有行)然后选其中某一列或几列数据。:

print(df.loc['20130102'])"""A 4B 5C 6D 7Name: 2013-01-02 00:00:00, dtype: int64"""print(df.loc[:,['A','B']]) """ A B2013-01-01 0 12013-01-02 4 52013-01-03 8 92013-01-04 12 132013-01-05 16 172013-01-06 20 21"""print(df.loc['20130102',['A','B']])"""A 4B 5Name: 2013-01-02 00:00:00, dtype: int64"""

根据序列 iloc

另外我们可以采用位置进行选择 ​​iloc​​, 在这里我们可以通过位置选择在不同情况下所需要的数据例如选某一个,连续选或者跨行选等操作。

print(df.iloc[3,1])# 13print(df.iloc[3:5,1:3])""" B C2013-01-04 13 142013-01-05 17 18"""print(df.iloc[[1,3,5],1:3])""" B C2013-01-02 5 62013-01-04 13 142013-01-06 21 22"""

在这里我们可以通过位置选择在不同情况下所需要的数据, 例如选某一个,连续选或者跨行选等操作。

根据混合的这两种 ix

当然我们可以采用混合选择 ​​ix​​, 其中选择’A’和’C’的两列,并选择前三行的数据。

print(df.ix[:3,['A','C']])""" A C2013-01-01 0 22013-01-02 4 62013-01-03 8 10"""

通过判断的筛选

最后我们可以采用判断指令 (Boolean indexing) 进行选择. 我们可以约束某项条件然后选择出当前所有数据.

print(df[df.A>8])""" A B C D2013-01-04 12 13 14 152013-01-05 16 17 18 192013-01-06 20 21 22 23"""

下节我们将会讲到Pandas中如何设置值。

降低知识传

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Matplotlib scatter 散点图
下一篇:持久层ORM框架Hibernate框架的使用及搭建方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~