使用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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
初步剖析C语言编程中的结构体
Jan 16 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
Python对列表中的各项进行关联详解
Aug 15 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 Python
python3.4中清屏的处理方法
Jul 06 Python
Python-split()函数实例用法讲解
Dec 18 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
解析isset与is_null的区别
2013/08/09 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
Bootstrap中表单控件状态(验证状态)
2016/08/04 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python使用py2exe打包程序介绍
2014/11/20 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
django ajax发送post请求的两种方法
2020/01/05 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
自我鉴定写作要点
2014/01/17 职场文书
见习期自我鉴定
2014/01/31 职场文书
党员公开承诺书
2014/03/25 职场文书
消防安全标语
2014/06/07 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS