使用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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
使用Python编写一个模仿CPU工作的程序
Apr 16 Python
Python类定义和类继承详解
May 08 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
Python @property装饰器原理解析
Jan 22 Python
在keras下实现多个模型的融合方式
May 23 Python
用Python简陋模拟n阶魔方
Apr 17 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
一个捕获函数输出的函数
2007/02/14 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
Python中作用域的深入讲解
2018/12/10 Python
对python中Json与object转化的方法详解
2018/12/31 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python argparse模块应用实例解析
2019/11/15 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
Solaris操作系统的线程机制
2015/07/28 面试题
研究生自荐信
2013/10/09 职场文书
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
最新党员思想汇报
2014/01/01 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server