使用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类的用法实例浅析
May 27 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
python读取图片任意范围区域
Jan 23 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
Python一键安装全部依赖包的方法
Aug 12 Python
Django获取应用下的所有models的例子
Aug 30 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
python 实现list或string按指定分段
Dec 25 Python
浅谈Python数学建模之固定费用问题
Jun 23 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实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
python pygame实现方向键控制小球
2019/05/17 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python接收手机短信的代码整理
2020/08/02 Python
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
农民工工资支付承诺函
2014/03/31 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
2014教师年度工作总结
2014/11/10 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
交通事故案件代理词
2015/05/23 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
解决mysql的int型主键自增问题
2021/07/15 MySQL