使用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 相关文章推荐
pygame实现弹力球及其变速效果
Jul 03 Python
Python实现的栈(Stack)
Jan 26 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
Python Flask实现进度条
May 11 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 一元分词算法
2009/11/30 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
stripos函数知识点实例分享
2019/02/11 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python3.6数独问题的解决
2019/01/21 Python
python for和else语句趣谈
2019/07/02 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python中提高pip install速度
2020/02/14 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
教育局长自荐信范文
2013/12/22 职场文书
水毁工程实施方案
2014/04/01 职场文书
股东合作协议书范本
2014/04/14 职场文书
出租房屋协议书
2014/09/14 职场文书
信用卡工作证明范本
2015/06/19 职场文书
交通安全学习心得体会
2016/01/18 职场文书