📜  python 按多个聚合分组 - Python (1)

📅  最后修改于: 2023-12-03 15:19:09.903000             🧑  作者: Mango

Python按多个聚合分组

在数据分析和数据处理中,聚合计算是常见的需求。Python中的pandas库提供了方便的聚合计算功能,可以根据多个指定的键值进行分组计算。本文将介绍在Python中如何实现按多个聚合分组。

示例

假设有一组销售记录数据,包括日期、产品、销售数量和销售金额等信息,现在需要按照日期和产品进行分组,统计销售数量和销售金额的总和。

先看一下数据:

import pandas as pd

df = pd.DataFrame({
    'date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'],
    'product': ['A', 'B', 'C', 'A', 'B', 'C'],
    'quantity': [100, 200, 300, 150, 250, 350],
    'amount': [10000, 20000, 30000, 15000, 25000, 35000]
})

print(df)

输出结果:

         date product  quantity  amount
0  2021-01-01       A       100   10000
1  2021-01-01       B       200   20000
2  2021-01-02       C       300   30000
3  2021-01-02       A       150   15000
4  2021-01-03       B       250   25000
5  2021-01-03       C       350   35000

按照日期和产品进行分组,统计销售数量和销售金额的总和,代码如下:

grouped = df.groupby(['date', 'product'], as_index=False).agg({'quantity': 'sum', 'amount': 'sum'})

print(grouped)

输出结果:

         date product  quantity  amount
0  2021-01-01       A       100   10000
1  2021-01-01       B       200   20000
2  2021-01-02       A       150   15000
3  2021-01-02       C       300   30000
4  2021-01-03       B       250   25000
5  2021-01-03       C       350   35000

可以看到,按照日期和产品进行分组后,统计了每个组的销售数量和销售金额的总和。

分组和聚合

可以看到,上面的代码中使用了groupby方法进行数据分组,然后使用agg方法进行聚合计算。在agg方法中,可以传入一个字典对象,键为需要聚合计算的列名,值为对应的聚合函数。

聚合函数有很多种,如sum(求和)、mean(求平均值)、max(求最大值)等等,具体可以参考官方文档。

在本例中,我们只简单使用了sum函数进行求和,实际上还可以进行很多其他的聚合计算。

总结

Python中的pandas库提供了方便的数据分组和聚合计算功能,可以满足数据分析和数据处理中常见的需求。本文介绍了如何通过groupbyagg方法实现按多个聚合分组的功能。

参考文献: