使用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程序与服务器连接的WSGI接口
Apr 29 Python
python实现的文件同步服务器实例
Jun 02 Python
深入理解python多进程编程
Jun 12 Python
Python 对象中的数据类型
May 13 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 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 curl伪造IP地址和header信息代码实例
2015/04/27 PHP
PHP实现的简单缓存类
2015/07/29 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
用javascript获取地址栏参数
2006/12/22 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
js模拟类继承小例子
2010/07/17 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
python logging类库使用例子
2014/11/22 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python 基础教程之包和类的用法
2017/02/23 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
matplotlib实现区域颜色填充
2019/03/18 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
毕业生教师求职信
2013/10/20 职场文书
考察邀请函范文
2015/01/31 职场文书
历史博物馆观后感
2015/06/05 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
解决Go gorm踩过的坑
2021/04/30 Golang
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server