使用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 26 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
python框架中flask知识点总结
Aug 17 Python
python安装pil库方法及代码
Jun 25 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
Python tkinter三种布局实例详解
Jan 06 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
python实现小程序推送页面收录脚本
Apr 20 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
python 爬取豆瓣网页的示例
Apr 13 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下将XML转换为数组
2010/01/01 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
React Native实现地址挑选器功能
2017/10/24 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
使用Python来开发微信功能
2018/06/13 Python
django中forms组件的使用与注意
2019/07/08 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python requests模块session代码实例
2020/04/14 Python
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
UNIX文件系统分类
2014/11/11 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
工业设计专业自荐书
2014/06/05 职场文书
学校志愿者活动总结
2014/06/27 职场文书
初中学校对照检查材料
2014/08/19 职场文书
房屋产权证明书
2014/10/15 职场文书
社区党支部承诺书
2015/04/29 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers