使用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中的闭包详细介绍和实例
Nov 21 Python
简单介绍Python中的readline()方法的使用
May 24 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
深入理解Python中变量赋值的问题
Jan 12 Python
Python实现的递归神经网络简单示例
Aug 11 Python
Python 判断 有向图 是否有环的实例讲解
Feb 01 Python
Python smtplib实现发送邮件功能
May 22 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
Python 把序列转换为元组的函数tuple方法
Jun 27 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
Python自动登录QQ的实现示例
Aug 28 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的FTP学习(二)
2006/10/09 PHP
php-fpm配置详解
2014/02/12 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP学习记录之数组函数
2018/06/01 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
python读取Android permission文件
2013/11/01 Python
python学习入门细节知识点
2018/03/29 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
python操作toml文件的示例代码
2020/11/27 Python
某公司部分笔试题
2013/11/05 面试题
医院总经理职责
2013/12/26 职场文书
职务任命书范本
2014/06/05 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
一级电子管军用接收机测评
2022/04/05 无线电