使用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中使用 Selenium 实现网页截图实例
Jul 18 Python
ubuntu系统下 python链接mysql数据库的方法
Jan 09 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
Python3.6 Schedule模块定时任务(实例讲解)
Nov 09 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
python爬虫添加请求头代码实例
Dec 28 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
python代码xml转txt实例
Mar 10 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 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
smarty实例教程
2006/11/19 PHP
php session劫持和防范的方法
2013/11/12 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
pytorch之添加BN的实现
2020/01/06 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
Python 中如何写注释
2020/08/28 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
服务之星获奖感言
2014/01/21 职场文书
作文批改评语大全
2014/04/23 职场文书
小学生环保演讲稿
2014/04/25 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
小学生成绩单评语
2014/12/31 职场文书
绵山导游词
2015/02/05 职场文书
员工试用期工作总结
2019/06/20 职场文书