在数据分析的广阔领域中,Pandas 无疑是 Python 生态系统中最强大的工具之一。特别是其 groupby 与 agg/aggregate 方法,为数据聚合提供了极大的便利与灵活性。本文将带您深入探索 Pandas 中的这些功能,了解它们如何帮助我们高效地处理和分析数据。
Pandas 数据聚合简介
在 Pandas 中,数据聚合是指将数据按照某些条件进行分组,并对每个组的数据进行汇总计算的过程。这一过程类似于 SQL 中的 GROUP BY 语句,但 Pandas 提供了更为丰富和灵活的聚合函数。
使用 groupby 方法
groupby 方法是 Pandas 中进行数据分组的核心。它允许我们按照一个或多个列的值将数据框(DataFrame)或序列(Series)划分为多个组。每个组都是一个独立的对象,我们可以在这些对象上应用各种聚合函数来计算统计量。
python
import pandas as pd
# 示例数据
data = {
'Name': ['Alice', 'Bob', 'Carol', 'David', 'Emily', 'Bob', 'Carol'],
'Age': [25, 30, 35, 40, 45, 30, 35],
'City': ['Beijing', 'London', 'Paris', 'Tokyo', 'London', 'London', 'Paris'],
'Salary': [8000, 6000, 5500, 7000, 4500, 6000, 5500]
}
df = pd.DataFrame(data)
# 按照 'City' 列进行分组
grouped = df.groupby('City')
# 对分组后的数据进行迭代
for city, group in grouped:
print(f"City: {city}")
print(group)
print()
使用 agg/aggregate 方法
agg 和 aggregate 方法用于对分组后的数据进行聚合计算。这两个方法功能相同,只是名称不同。它们接受一个或多个聚合函数作为参数,并返回一个新的 DataFrame 或 Series,其中包含每个组的聚合结果。
Pandas 提供了多种内置的聚合函数,如 mean、sum、count、min、max 等。此外,我们还可以传入自定义函数进行聚合计算。
python
# 使用内置聚合函数
grouped_stats = df.groupby('City').agg({'Age': 'mean', 'Salary': 'sum'})
print(grouped_stats)
# 自定义聚合函数
def my_mean(values):
return values.mean()
custom_grouped_stats = df.groupby('City').agg({'Age': my_mean, 'Salary': 'sum'})
print(custom_grouped_stats)
# 同时传入多个聚合函数
grouped_multi_stats = df.groupby('City')['Salary'].agg(['mean', 'sum', 'min', 'max'])
print(grouped_multi_stats)
进阶用法
除了上述基本用法外,Pandas 的 groupby 和 agg/aggregate 方法还支持更复杂的操作。例如,我们可以根据分组结果进一步筛选数据,或者对分组后的数据进行排序。
此外,Pandas 还允许我们根据其他类型的数据(如列表、字典或 Series)进行分组。这种灵活性使得 Pandas 在处理复杂数据时更加得心应手。
全国信息发布网 https://www.tiancebbs.cn
北京信息发布网 https://bj.tiancebbs.cn
上海信息发布网 https://sh.tiancebbs.cn
天津信息发布网 https://tj.tiancebbs.cn
重庆信息发布网 https://cq.tiancebbs.cn
成都信息发布网 https://cd.tiancebbs.cn
全国租赁论坛 http://zulin.china-bbs.com
木木论坛 http://www.china-bbs.com
618论坛 https://bbs.tiancebbs.cn