使用pandas实现筛选出指定列值所对应的行


Posted in Python onDecember 13, 2020

在pandas中怎么样实现类似mysql查找语句的功能:

select * from table where column_name = some_value;

pandas中获取数据的有以下几种方法:

  • 布尔索引
  • 位置索引
  • 标签索引
  • 使用API

假设数据如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
          'B': 'one one two three two two one three'.split(),
          'C': np.arange(8), 'D': np.arange(8) * 2})

使用pandas实现筛选出指定列值所对应的行

布尔索引

该方法其实就是找出每一行中符合条件的真值(true value),如找出列A中所有值等于foo

df[df['A'] == 'foo'] # 判断等式是否成立

使用pandas实现筛选出指定列值所对应的行

位置索引

使用iloc方法,根据索引的位置来查找数据的。这个例子需要先找出符合条件的行所在位置

mask = df['A'] == 'foo'
pos = np.flatnonzero(mask) # 返回的是array([0, 2, 4, 6, 7])
df.iloc[pos]

#常见的iloc用法
df.iloc[:3,1:3]

使用pandas实现筛选出指定列值所对应的行

标签索引

如何DataFrame的行列都是有标签的,那么使用loc方法就非常合适了。

df.set_index('A', append=True, drop=False).xs('foo', level=1) # xs方法适用于多重索引DataFrame的数据筛选

# 更直观点的做法
df.index=df['A'] # 将A列作为DataFrame的行索引
df.loc['foo', :]

# 使用布尔
df.loc[df['A']=='foo']

使用pandas实现筛选出指定列值所对应的行

使用API

pd.DataFrame.query方法在数据量大的时候,效率比常规的方法更高效。

df.query('A=="foo"')

# 多条件
df.query('A=="foo" | A=="bar"')

使用pandas实现筛选出指定列值所对应的行

数据提取不止前面提到的情况,第一个答案就给出了以下几种常见情况:

1、筛选出列值等于标量的行,用==

df.loc[df['column_name'] == some_value]

2、筛选出列值属于某个范围内的行,用isin

df.loc[df['column_name'].isin(some_values)] # some_values是可迭代对象

3、多种条件限制时使用&,&的优先级高于>=或<=,所以要注意括号的使用

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]

4、筛选出列值不等于某个/些值的行

df.loc[df['column_name'] != 'some_value']

df.loc[~df['column_name'].isin('some_values')] #~取反

到此这篇关于使用pandas实现筛选出指定列值所对应的行的文章就介绍到这了,更多相关pandas 筛选指定列值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中实现定制类的特殊方法总结
Sep 28 Python
python操作CouchDB的方法
Oct 08 Python
python协程用法实例分析
Jun 04 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
python实现猜单词游戏
May 22 Python
Python如何把十进制数转换成ip地址
May 25 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
浅析python实现动态规划背包问题
Dec 31 Python
Pandas DataFrame求差集的示例代码
Dec 13 #Python
pandas实现导出数据的四种方式
Dec 13 #Python
python绘图pyecharts+pandas的使用详解
Dec 13 #Python
Pandas对每个分组应用apply函数的实现
Dec 13 #Python
python安装及变量名介绍详解
Dec 12 #Python
在python中对于bool布尔值的取反操作
Dec 11 #Python
python 基于opencv 绘制图像轮廓
Dec 11 #Python
You might like
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
angular 组件通信的几种实现方式
2018/07/13 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
Python中http请求方法库汇总
2016/01/06 Python
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
Python sublime安装及配置过程详解
2020/06/29 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
面试求职的个人自我评价
2013/11/16 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
家长学校培训材料
2014/08/20 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技