首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫,loc与非loc用于布尔索引

熊猫,loc与非loc用于布尔索引
EN

Stack Overflow用户
提问于 2018-11-14 09:44:57
回答 1查看 6.4K关注 0票数 19

我所做的所有研究都指出,使用loc作为通过cols (S)值对数据进行过滤的方法,今天我正在阅读,我通过测试的示例发现,在按其值过滤cols时,并不真正需要loc

例:

代码语言:javascript
复制
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

注意:我确实知道执行loc iloc 会根据其索引和位置返回行。我不是根据这个功能进行比较。

但是,在过滤、执行"where“子句时,使用或不使用loc有什么区别呢?如果有的话。为什么我遇到的关于这个主题的所有例子都使用loc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-14 09:57:53

根据文档,loc接受一个用于选择行的布尔数组,在您的示例中

代码语言:javascript
复制
>>> df['a'] >= 15
>>> 
0    False
1    False
2    False
3    False
4    False
5    False
6     True
7     True
Name: a, dtype: bool

被视为布尔数组。

根据“loc”的作者Wes McKinney,您可以在这里省略df[df['a'] >= 15]并发布df[df['a'] >= 15]这一事实是一个特殊的方便情况。

直接引用他的书,用于数据分析的Python,第144页,df[val]是用来.

从DataFrame中选择单列或列序列;特例方便性:布尔数组(筛选行)、片(片行)或布尔DataFrame(根据某种标准设置值)

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53297140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档