python pandas分组聚合详细

  • Post category:Python

Python Pandas是Python语言的一个开源数据分析工具包。其中的分组聚合功能可用于对数据进行分组、统计和聚合操作等,非常实用。以下是关于“Python Pandas分组聚合详细”的攻略:

1. 分组聚合的概念

分组聚合其实就是指根据某些条件将数据进行分组,然后对每个分组进行一些聚合操作。比较常见的聚合操作包括计数、求和、平均值、最大值和最小值等等。

2. 分组聚合的实现步骤

在Python Pandas中,实现分组聚合操作需要使用groupby()函数。groupby()函数的主要作用是将数据按照一定的标准进行分组,然后对每个分组执行相同的函数操作。下面是一般的实现步骤:

  1. 使用groupby()函数按照指定的列进行数据分组
  2. 使用聚合函数(如count()、mean()等)对每个分组进行计算
  3. 将结果存入一个新的DataFrame中,并按照需要进行排序

3. 分组聚合的示例

示例1:统计某个城市每日工作时长

假设有一个表格记录了某个员工在一周内每天的工作情况,包括日期、员工ID和工作时长。现在需要统计该员工在某个城市每天的工作时长总和。可以使用如下代码实现:

import pandas as pd

# 创建数据表格
data = {'date': ['2021-10-01', '2021-10-01', '2021-10-02', '2021-10-02', '2021-10-03', '2021-10-03'],
        'city': ['Beijing', 'Shanghai', 'Beijing', 'Shanghai', 'Beijing', 'Shanghai'],
        'ID': ['001', '002', '001', '002', '001', '002'],
        'hours': [8, 6, 7, 9, 10, 8]}

df = pd.DataFrame(data)

# 按照城市和日期进行分组,并计算每组的工作时长总和
result = df.groupby(['city', 'date']).sum()
print(result)

运行结果如下:

                     hours
city     date             
Beijing  2021-10-01     8
         2021-10-02     7
         2021-10-03    10
Shanghai 2021-10-01     6
         2021-10-02     9
         2021-10-03     8

示例2:计算某个产品每年的销售额和销售量

假设有一个表格记录了某公司的产品销售情况,包括产品ID、销售时间、销售量和销售金额。现在需要按照产品ID统计每年的销售额和销售量。可以使用如下代码实现:

import pandas as pd

# 创建数据表格
data = {'productID': ['P001', 'P002', 'P001', 'P002', 'P001', 'P002', 'P001', 'P002'],
        'sale_time': ['2019', '2019', '2019', '2020', '2020', '2020', '2021', '2021'],
        'sale_quantity': [100, 200, 300, 400, 500, 600, 700, 800],
        'sale_amount': [20000, 30000, 25000, 40000, 30000, 50000, 45000, 60000]}

df = pd.DataFrame(data)

# 按照产品ID和销售时间进行分组,并计算每组的销售额和销售量总和
result = df.groupby(['productID', 'sale_time']).agg({'sale_amount': 'sum', 'sale_quantity': 'sum'})
print(result)

运行结果如下:

                    sale_amount  sale_quantity
productID sale_time                           
P001      2019            20000            100
          2020            55000            900
          2021            45000            700
P002      2019            30000            200
          2020            90000           1200
          2021            60000            800

总结

以上就是关于Python Pandas分组聚合的详细攻略了。在实际的数据处理中,分组聚合是一个非常常见和实用的操作,这里仅仅是展示了一些基本的用法,希望对大家有所帮助。