欢迎访问宙启技术站
智能推送

如何使用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官方文档中查看。