如何使用Python的query()函数实现复杂的数据查询和聚合操作
发布时间:2023-12-15 11:08:24
Python的pandas库提供了一个query()函数,可以用于实现复杂的数据查询和聚合操作。query()函数可以直接在DataFrame中执行查询操作,并返回满足条件的结果。
下面是一个使用query()函数实现复杂数据查询和聚合操作的例子:
1. 导入必要的库和数据集:
import pandas as pd
# 创建一个数据集
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Age': [25, 30, 35, 40, 45],
'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
'Salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)
2. 执行查询操作:
# 查询年龄大于30岁的员工
result = df.query('Age > 30')
print(result)
输出结果:
Name Age Gender Salary
2 Charlie 35 Male 70000
3 David 40 Male 80000
4 Emily 45 Female 90000
上述查询使用了表达式'Age > 30',表示筛选出年龄大于30岁的员工。
3. 执行聚合操作:
# 计算男性员工的平均薪资
average_salary = df.query('Gender == "Male"')['Salary'].mean()
print(average_salary)
输出结果:
70000.0
上述聚合操作使用了表达式'Gender == "Male"',表示筛选出性别为男性的员工,并计算他们的平均薪资。
4. 使用多个条件进行查询和聚合操作:
# 查询性别为女性且年龄大于30岁的员工的姓名和薪资
result = df.query('Gender == "Female" and Age > 30')[['Name', 'Salary']]
print(result)
输出结果:
Name Salary 4 Emily 90000
上述查询使用了多个条件,并使用and运算符将它们组合在一起。此外,还使用了[['Name', 'Salary']]操作符选择结果中的特定列。
除了上述示例中的查询和聚合操作,query()函数还支持更多的操作符和函数,可以对数据集进行更复杂的查询和计算。更多详细信息可以在pandas官方文档中查看。
