Python pandas groupby 在多个列上聚合,然后进行透视

作者:编程家 分类: python 时间:2025-11-22

使用Python的pandas库进行数据处理和分析是数据科学领域中常用的工具之一。其中,pandas的groupby函数可以在多个列上进行聚合操作,而透视表则可以将聚合后的数据以更直观的方式呈现出来。本文将介绍如何使用pandas的groupby函数在多个列上进行聚合,并通过透视表展示结果。

首先,让我们来看一个简单的案例。假设我们有一个销售数据表格,其中包含了产品的销售额、销售日期、销售地点和销售人员等信息。我们的目标是对不同地点和日期的销售额进行聚合,并通过透视表展示结果。

代码如下所示:

python

import pandas as pd

# 创建数据表格

data = {'地点': ['北京', '上海', '北京', '上海', '北京', '上海'],

'日期': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'],

'销售额': [100, 200, 150, 250, 300, 350],

'销售人员': ['张三', '李四', '张三', '李四', '张三', '李四']}

df = pd.DataFrame(data)

# 在多个列上进行聚合

grouped = df.groupby(['地点', '日期']).agg({'销售额': 'sum'})

# 通过透视表展示结果

pivot_table = pd.pivot_table(grouped, values='销售额', index='地点', columns='日期')

print(pivot_table)

在上述代码中,我们首先创建了一个包含销售数据的DataFrame对象。然后,通过groupby函数在“地点”和“日期”两列上进行聚合操作,使用sum函数计算销售额的总和。最后,我们通过透视表将聚合后的数据以“地点”为行索引、“日期”为列索引进行展示。

聚合结果展示

通过运行上述代码,我们可以得到以下结果:

日期 2021-01-01 2021-01-02 2021-01-03

地点

上海 200 250 350

北京 100 150 300

解析与

在本文中,我们介绍了如何使用pandas的groupby函数在多个列上进行聚合操作,并通过透视表展示结果。这对于对数据进行分组统计和可视化分析非常有帮助。通过透视表,我们可以更直观地看到不同地点和日期的销售额情况,从而为业务决策提供参考。

总的来说,pandas提供了强大的数据处理和分析功能,能够帮助我们更高效地处理和分析数据。希望本文对你理解pandas的groupby函数和透视表的使用有所帮助。