下面是关于Pandas使用query()优雅的查询实例的完整攻略。
标准的markdown格式文本
什么是Pandas的query()方法
Pandas是Python中常用的数据处理库,它提供了query()方法用于查询数据。query() 方法支持字符串化的查询语句,可以方便的查询DataFrame中的数据。
query()方法的使用
query() 方法接收一个字符串形式的查询语句作为参数,并返回符合条件的数据。
基础用法
对于一个DataFrame数据,可以使用query()方法进行筛选和查询。
例如,我们建立一个数据集合:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,size=(10,2)),columns=list('AB'))
然后我们可以使用query()方法对数据进行筛选:
df.query('A > B')
输出结果为A列大于B列的数据。
支持参数查询
query()同样支持参数查询,这加强了代码的可读性。
例如:
df.query('A > @value', local_dict={'value':3})
表示A列大于参数value的数据,value=3。
示例说明
下面我们将使用两个示例说明query()方法的使用。
示例1
创建一个包含姓名、年龄、性别和工资的数据表,然后使用 query() 方法查询工资大于 10000 元的员工。
import pandas as pd
# 创建表格数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eric'],
'age': [25, 32, 18, 47, 64],
'gender': ['F', 'M', 'F', 'M', 'M'],
'salary': [12000, 8000, 6000, 15000, 10000]}
df = pd.DataFrame(data)
# 使用query()进行查询
result = df.query('salary > 10000')
# 输出结果
print(result)
输出结果为:
name age gender salary
0 Alice 25 F 12000
3 David 47 M 15000
示例2
创建一个包含学生姓名、语文、数学、英语和物理成绩的数据表,然后使用 query() 方法查询语文、数学、英语和物理成绩均大于 80 分的学生。
import pandas as pd
# 创建表格数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eric'],
'chinese': [85, 80, 90, 95, 70],
'math': [80, 90, 75, 85, 95],
'english': [90, 70, 80, 85, 75],
'physics': [70, 80, 85, 90, 95]}
df = pd.DataFrame(data)
# 使用query()进行查询
result = df.query('chinese > 80 and math > 80 and english > 80 and physics > 80')
# 输出结果
print(result)
输出结果为:
name chinese math english physics
0 Alice 85 80 90 70
3 David 95 85 85 90
总结
以上就是关于Pandas使用query()优雅的查询实例的攻略。query()方法可以方便的进行数据筛选,同时也支持参数查询,可以提高代码的可读性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas使用query()优雅的查询实例 - Python技术站