Python Pandas 获取列匹配特定值的行的索引问题


Posted in Python onJuly 01, 2019

给定一个带有列"BoolCol"的DataFrame,如何找到满足条件"BoolCol" == True的DataFrame的索引

目前有迭代的方式来做到这一点:

for i in range(100,3000):
  if df.iloc[i]['BoolCol']== True:
     print i,df.iloc[i]['BoolCol']

这虽然可行,但不是标准的 Pandas 方式。经过一番研究,我目前正在使用这个代码:

df[df['BoolCol'] == True].index.tolist()

这个给了我一个索引列表,但跟我想要的不匹配,当检查:

df.iloc[i]['BoolCol']

其结果实际上是False!

如何使用正确的 Pandas 方式做到这一点?

最佳解决方法

df.iloc[i]返回df的第i行。 i不引用索引标签,i是从0开始的索引。

相反,属性index返回实际的索引标签,而不是数字row-indices:

df.index[df['BoolCol'] == True].tolist()

或者等同地,

df.index[df['BoolCol']].tolist()

通过使用带有"unusual"索引的DataFrame,可以非常清楚地看到差异:

df = pd.DataFrame({'BoolCol': [True, False, False, True, True]},
    index=[10,20,30,40,50])
In [53]: df
Out[53]: 
  BoolCol
10  True
20  False
30  False
40  True
50  True
[5 rows x 1 columns]
In [54]: df.index[df['BoolCol']].tolist()
Out[54]: [10, 40, 50]

如果你想使用索引,

In [56]: idx = df.index[df['BoolCol']]
In [57]: idx
Out[57]: Int64Index([10, 40, 50], dtype='int64')

那么您可以使用loc而不是iloc选择行:

In [58]: df.loc[idx]
Out[58]: 
  BoolCol
10  True
40  True
50  True

[3 rows x 1 columns]

请注意,loc也可以接受布尔数组:

In [55]: df.loc[df['BoolCol']]
Out[55]: 
  BoolCol
10  True
40  True
50  True

[3 rows x 1 columns]

如果您有一个布尔数组mask,并且需要序数索引值,则可以使用np.flatnonzero来计算它们:

In [110]: np.flatnonzero(df['BoolCol'])
Out[112]: array([0, 3, 4])

使用df.iloc按顺序索引选择行:

In [113]: df.iloc[np.flatnonzero(df['BoolCol'])]
Out[113]: 
  BoolCol
10  True
40  True
50  True
python pandas

Python Pandas 获取列匹配特定值的行的索引问题

参考文献

Python Pandas:  Get index of rows which column matches certain value

总结

以上所述是小编给大家介绍的Python Pandas 获取列匹配特定值的行的索引问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python获取本地计算机名字的方法
Apr 29 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
python使用pymysql实现操作mysql
Sep 13 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
python属于解释语言吗
Jun 11 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
python interpolate插值实例
Jul 06 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
Python动态语言与鸭子类型详解
Jul 01 #Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 #Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 #Python
python字符串Intern机制详解
Jul 01 #Python
简单了解python单例模式的几种写法
Jul 01 #Python
python如何获取列表中每个元素的下标位置
Jul 01 #Python
Django自定义用户登录认证示例代码
Jun 30 #Python
You might like
几个学习PHP的网址
2006/11/25 PHP
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php实现上传图片文件代码
2015/07/19 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
PHP钩子实现方法解析
2019/05/21 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Python编写万花尺图案实例
2021/01/03 Python
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
华为慧通面试题
2012/09/11 面试题
婚礼证婚人证婚词
2014/01/08 职场文书
销售团队激励口号
2014/06/06 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2014司机年终工作总结
2014/12/05 职场文书
天坛导游词
2015/02/02 职场文书
迎新生晚会主持词
2015/06/30 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
python脚本框架webpy模板赋值实现
2021/11/20 Python