使用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使用循环实现批量创建文件夹示例
Mar 25 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
PyQt5 多窗口连接实例
Jun 19 Python
python中比较两个列表的实例方法
Jul 04 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 Python
django中related_name的用法说明
May 20 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
详解在OpenCV中如何使用图像像素
Mar 03 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使用正则表达式获取字符串中的URL
2016/12/29 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
2015/12/25 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python实现多线程网页下载器
2018/04/15 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
优秀管理者事迹材料
2014/05/22 职场文书
文明礼仪标语
2014/06/13 职场文书
参观邀请函范文
2015/02/02 职场文书
2015暑假假期总结
2015/07/13 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
java多态注意项小结
2021/10/16 Java/Android
python套接字socket通信
2022/04/01 Python