python pandas query的使用方法
作者:soulsoul_god 发布时间:2023-01-14 06:23:33
前言:
Pandas 中应用 query 函数来进行数据筛选。
query 函数的一般用法如下:
df.query('expression')
常用方法:
#!/usr/bin/python
import pandas as pd
import numpy as np
data = {
'brand':['Python',' C ',' C++ ','C#','Java'],
'A':[10,2,5,20,16],
'B':[4,6,8,12,10],
'C':[8,12,18,8,2],
'D':[6,18,14,6,12],
'till years':[4,1,1,30,30]
}
df = pd.DataFrame(data=data)
print("df数据打印:\n", df, '\n')
print('查找数据:\n', df.query('brand == "Python"'), '\n')
print('查找数据:\n', df[df['brand'] == "Python"], '\n')
可以使用df.query('brand == "Python"')进行查找,也可以使用df[df['brand'] == "Python"]这种方式进行查找。
out:
df数据打印:
brand A B C D till years
0 Python 10 4 8 6 4
1 C 2 6 12 18 1
2 C++ 5 8 18 14 1
3 C# 20 12 8 6 30
4 Java 16 10 2 12 30
查找数据:
brand A B C D till years
0 Python 10 4 8 6 4
查找数据:
brand A B C D till years
0 Python 10 4 8 6 4
通过数学表达式来筛选:
除了直接通过等于某个值来筛选, query 函数还支持通过数学表达式来进行数据筛选,包括 > 、 < 、 + 、 - 、 * 、 / 等。
print('查找数据:\n', df.query('A > 15'), '\n')
out:
查找数据:
brand A B C D till years
3 C# 20 12 8 6 30
4 Java 16 10 2 12 30
通过变量筛选:
在程序比较长的时候,经常会使用变量来作为筛选条件, query 函数在使用变量作为判断标准时,通过在变量前面添加 @ 符号来实现,
示例如下:
name = 'Java'
print('查找数据:\n', df.query('brand == @name'), '\n')
out:
查找数据:
brand A B C D till years
4 Java 16 10 2 12 30
通过列表数据筛选:
当需要在某列中筛选多个符合要求的值的时候,可以通过列表( list )来实现,示例如下:
name = ['Python', 'Java']
print('查找数据:\n', df.query('brand in @name'), '\n')
out:
查找数据:
brand A B C D till years
0 Python 10 4 8 6 4
4 Java 16 10 2 12 30
多条件筛选:
两者都需要满足的并列条件使用符号 & , 或单词 and
只需要满足其中之一的条件使用符号 | , 或单词 or
name = ['Python', 'Java']
print('查找数据:\n', df.query('brand in @name & A > 15'), '\n')
out:
查找数据:
brand A B C D till years
4 Java 16 10 2 12 30
列名称中有空格的情况,使用``进行处理:
使用引号处理的话,会报错。
print('查找数据:\n', df.query('`till years` > 10'), '\n')
out:
查找数据:
brand A B C D till years
3 C# 20 12 8 6 30
4 Java 16 10 2 12 30
筛选后选取数据列:
name = ['brand', 'A', 'B', 'till years']
print('查找数据:\n', df.query('`till years` > 10')[name], '\n')
out:
查找数据:
brand A B till years
3 C# 20 12 30
4 Java 16 10 30
总结:
当用到多条件筛选时,使用query就会显得简洁的多:
print(df[(df['brand'] == 'Python') & (df['A'] == 10) & (df['B'] == 4)])
print(df.query('brand == "Python" & A == 10 & B == 4'))
来源:https://blog.csdn.net/xiadeliang1111/article/details/126819918
猜你喜欢
- 在一个文件的末尾追加数据是很常用的。在使用过程中应该都比较熟悉不会出现什么错误。但是往一个文件头部插入数据可能或多或少会碰到一些问题。看似正
- in Navicat for MySQL,PostgreSQL and Oracle 产生错误的原因是mysql帐户连接到远程mysql服务
- OS模块import os1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统print(os.name
- Vue-router是伴随着Vue框架出现的路由系统,它也是公认的一种优秀的路由解决方案。在使用Vue-router时候,我们常常会使用其自
- 本文实例讲述了Python实现的KMeans聚类算法。分享给大家供大家参考,具体如下:菜鸟一枚,编程初学者,最近想使用Python3实现几个
- 1、下载python安装包,进入python官网(python.org)2、安装python,可根据需求选择默认安装或自定义安装,如下3、选
- calccalc 是一个我们想要做剖析(性能分析)的异步函数。按照惯例,它的最后一个参数是一个callback。我们像这样使用 calc:c
- 前言这几年对运维人员来说最大的变化可能就是公有云的出现了,我相信可能很多小伙伴公司业务就跑在公有云上, 因为公司业务关系,我个人
- 首先说明,伪造访问来路不是什么光明正大的事情,目的就是为了欺骗服务器。原本以为给 XMLHTTP 对象增加一个 Referer 的heade
- 一、前言既然在Pathlib库中提到了glob()函数,那么我们就专门用一篇内容讲解文件名的匹配。其实我们有专门的一个文件名匹配库就叫:gl
- 使用APPLY运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。 表值函数作为右输入,外部表表达式作为左输入。 通过对右输入求
- 翻译:ShiningRay @ Nirvana Studio作者:Douglas Crockford来源:http://www.crockf
- 对比测试 scipy.misc 和 PIL.Image 和 libtiff.TIFF 三个库输入:1. (读取矩阵) 读入uint8、uin
- 最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到word
- 如果一些应用需要到中文字体(如果pygraphviz,不安装中文字体,中文会显示乱码),就要在image 中安装中文字体。默认 python
- 1、ValueError: Invalid control character at: line 1 column 8363 (char 8
- 在使用tensorflow时常常会使用到tf.reduce_*这类的函数,在此对一些常见的函数进行汇总1.tf.reduce_sumtf.r
- 本文分析了PHP7新特性之抽象语法树(AST)带来的变化。分享给大家供大家参考,具体如下:这里大部分内容参照 AST 的 RFC 文档而成:
- 一、PillowPIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但
- 任务详情给定一各地 2016 年 1 月和 2 月各个时间点的温度表格,表格预览见页面下方。数据表的第二列表示当前时间,数据表第一行第三列到