使用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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
python梯度下降法的简单示例
Aug 31 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
python使用配置文件过程详解
Dec 28 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
Django多数据库联用实现方法解析
Nov 12 Python
python可视化大屏库big_screen示例详解
Nov 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实现MySQL更新记录的代码
2008/06/07 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
destoon官方标签大全
2014/06/20 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP的PDO连接讲解
2019/01/24 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
Vue组件中slot的用法
2018/01/30 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python读写文件操作示例程序
2013/12/02 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
iPython pylab模式启动方式
2020/04/24 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
质检部经理岗位职责
2014/02/19 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
小学生安全保证书
2015/05/09 职场文书
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL