gpt4 book ai didi

python - 用于 bool 索引的 Pandas、loc 与非 loc

转载 作者:行者123 更新时间:2023-12-04 12:27:10 28 4
gpt4 key购买 nike

我所做的所有研究都指向使用 loc作为通过 col(s) 值过滤数据帧的方法,今天我正在阅读 this我通过我测试的例子发现,loc当按值过滤 cols 时,不是真的需要:

前任:

df = pd.DataFrame(np.arange(0, 20, 0.5).reshape(8, 5), columns=['a', 'b', 'c', 'd', 'e'])    

df.loc[df['a'] >= 15]

a b c d e
6 15.0 15.5 16.0 16.5 17.0
7 17.5 18.0 18.5 19.0 19.5

df[df['a'] >= 15]

a b c d e
6 15.0 15.5 16.0 16.5 17.0
7 17.5 18.0 18.5 19.0 19.5

注意:我知道做 lociloc按索引和位置返回行。我不是基于此功能进行比较。

但是在过滤的时候,做“ where”子句使用与不使用 loc的区别是什么? ?如果有的话。为什么我遇到的所有关于这个主题的例子都使用 loc ?

最佳答案

根据文档, loc 接受一个 bool 数组来选择行,在你的情况下

>>> df['a'] >= 15
>>>
0 False
1 False
2 False
3 False
4 False
5 False
6 True
7 True
Name: a, dtype: bool

被视为 bool 数组。

您可以省略 loc 的事实在这里发布 df[df['a'] >= 15]根据 pandas 的作者 Wes McKinney 的说法,这是一种特殊情况的便利。 .

直接引用他的书, Python for Data Analysis ,第144, df[val]用于...

Select single column or sequence of columns from the DataFrame; special case conveniences: boolean array (filter rows), slice (slice rows), or boolean DataFrame (set values based on some criterion)

关于python - 用于 bool 索引的 Pandas、loc 与非 loc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53297140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com