为了账号安全,请及时绑定邮箱和手机立即绑定

用于布尔索引的 Pandas、loc 与非 loc

用于布尔索引的 Pandas、loc 与非 loc

慕哥9229398 2021-08-17 16:25:38
我所做的所有研究都指向loc用作通过 col(s) 值过滤数据帧的方法,今天我正在阅读这篇文章,并通过我测试的示例发现,这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     e6  15.0  15.5  16.0  16.5  17.07  17.5  18.0  18.5  19.0  19.5df[df['a'] >= 15]      a     b     c     d     e6  15.0  15.5  16.0  16.5  17.07  17.5  18.0  18.5  19.0  19.5注意:我确实知道通过索引和位置来执行loc或iloc返回行。我不是基于此功能进行比较。但是在过滤时,做 " where" 子句使用和不使用有loc什么区别?如果有的话。为什么我遇到的所有关于这个主题的例子都使用loc?
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

根据文档,loc接受用于选择行的布尔数组,在您的情况下


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

>>> 

0    False

1    False

2    False

3    False

4    False

5    False

6     True

7     True

Name: a, dtype: bool

被视为布尔数组。


你可以忽略的事实loc在这里和问题df[df['a'] >= 15]是根据韦斯麦金尼,笔者特例便利pandas。


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


从 DataFrame 中选择单列或列序列;特殊情况的便利:布尔数组(过滤行)、切片(切片行)或布尔数据帧(根据某些标准设置值)


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信