在 Pandas 中,分组和聚合是处理和分析数据的重要工具,能够帮助用户从大型数据集中提取有意义的总结和统计信息。这里简要概述分组(grouping)和聚合(aggregation)的基本概念、用法、以及它们的结合使用。
1. 分组(Grouping)
分组是将数据集分成不同的组,以便对每个组独立进行操作。在 Pandas 中,分组通常使用 `groupby()` 方法来进行。该方法可以根据一个或多个变量将 DataFrame 划分为不同的小组。
1.1 基本用法
import pandas as pd
# 创建示例 DataFrame
data = {
'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
'Values': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
# 按类别进行分组
grouped = df.groupby('Category')
2. 聚合(Aggregation)
聚合是对分组数据执行某种汇总操作,如求和、计算均值、计数等。Pandas 提供了多种聚合函数,用户可以使用它们对每个组的数据进行汇总。
2.1 常用聚合函数
sum(): 计算和
mean(): 计算均值
count(): 计算计数
min(): 计算最小值
max(): 计算最大值
std(): 计算标准差
2.2 聚合示例
# 计算每个类别的总和
sum_result = grouped.sum()
print(sum_result)
3. 分组和聚合的结合使用
结合分组和聚合可以轻松有效地生成汇总统计。用户可以对分组后的对象直接调用聚合函数。
# 计算每个类别的平均值
mean_result = grouped.mean()
print(mean_result)
# 计算每个类别的计数
count_result = grouped.count()
print(count_result)
4. 使用多个聚合函数
用户也可以在一次操作中使用多个聚合函数。Pandas 允许通过 `agg()` 方法来实现。
# 使用多个聚合函数
agg_result = grouped.agg(['sum', 'mean', 'max'])
print(agg_result)
5. 自定义聚合函数
除了内置的聚合函数,用户还可以定义自定义的聚合函数,并在分组时使用它们。
# 自定义聚合函数
def range_func(x):
return x.max() - x.min()
# 应用自定义聚合函数
custom_agg_result = grouped.agg(range_func)
print(custom_agg_result)
6. 分组的多级(Multi-level)分组
用户可以根据多个列进行分组,实现多层次的聚合统计。
data_multi = {
'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
'Type': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Values': [10, 20, 30, 40, 50, 60]
}
df_multi = pd.DataFrame(data_multi)
# 多级分组
grouped_multi = df_multi.groupby(['Category', 'Type']).sum()
print(grouped_multi)
7. 总结
分组和聚合是数据分析中非常强大的工具,可以帮助用户在分析大型数据集时提取重要信息。在 Pandas 中,使用 `groupby()` 方法可以轻松地将数据分组,随后可以对每个组进行多种聚合操作。