如何使用Python的query()函数实现数据统计和分析
query() 函数是 Pandas 库中的一个重要函数,用于在 DataFrame 中进行数据统计和分析。它可以根据特定的条件从数据集中选择想要的数据,然后进行统计分析。
首先,你需要导入 Pandas 库:
import pandas as pd
然后,你需要创建一个 DataFrame 对象,可以使用字典、列表等多种方式创建数据集,这里以字典为例:
data = {
'Name': ['Tom', 'Nick', 'John', 'Bob', 'Mike'],
'Age': [25, 30, 35, 40, 45],
'Salary': [5000, 6000, 7000, 8000, 9000]
}
df = pd.DataFrame(data)
这样就创建了一个包含姓名、年龄和薪水的数据集。接下来,就可以使用 query() 函数进行数据统计和分析了。
1. 使用 query() 函数选择数据
query() 函数可以通过传入一个字符串条件来选择符合条件的数据。条件可以包含各种运算符(如大于、小于、等于、不等于等)、逻辑运算符(如与、或、非等)和函数。例如,选择年龄大于等于 35 岁的数据:
selected_data = df.query('Age >= 35')
print(selected_data)
输出结果为:
Name Age Salary 2 John 35 7000 3 Bob 40 8000 4 Mike 45 9000
2. 使用 query() 函数进行数据分析
query() 函数还可以对选择的数据进行各种统计分析操作,如计算平均值、最大值、最小值等。例如,计算年龄大于等于 35 岁的员工薪水的平均值:
average_salary = df.query('Age >= 35')['Salary'].mean()
print(average_salary)
输出结果为:
8000.0
3. 使用 query() 函数进行多条件筛选
query() 函数还可以通过传入多个条件进行筛选,可以使用逻辑运算符(如与、或、非等)连接多个条件。例如,选择年龄在 30 到 40 岁之间,并且薪水大于 6000 的员工:
selected_data = df.query('Age >= 30 and Age <= 40 and Salary > 6000')
print(selected_data)
输出结果为:
Name Age Salary 2 John 35 7000 3 Bob 40 8000
4. 使用 query() 函数进行模糊查询
query() 函数还可以进行模糊查询,使用 "str.contains()" 方法实现。例如,选择姓名中包含 "Nic" 的员工:
selected_data = df.query('Name.str.contains("Nic")', engine='python')
print(selected_data)
输出结果为:
Name Age Salary 1 Nick 30 6000
query() 函数的使用非常灵活,可以根据实际需求进行各种统计分析操作。除了上述例子中的常用功能,还可以使用各种函数(如 len()、sum()、count())对选择的数据进行统计分析。需要注意的是,在传入字符串条件时,可以使用特殊的字符(如逗号、括号等)来进行复杂的数据筛选和计算操作,提高代码的表达力和灵活性。
以上就是使用 Python 的 query() 函数实现数据统计和分析的方法和例子。通过灵活运用 query() 函数,可以更加高效地进行数据处理和分析,提高工作效率。
