Pandas对数据分组后求和

2023-02-24 00:00:00 数据 分组 求和

在 Pandas 中,groupby 方法可以用于按照某一列或多列对 DataFrame 进行分组,并对分组后的数据进行聚合操作。其中,sum() 方法可以用于计算分组后的每个分组的总和。以下是示例代码:

import pandas as pd

# 创建示例 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'Bob', 'Alice', 'Charlie'],
        'age': [25, 30, 35, 30, 28, 32],
        'salary': [5000, 6000, 7000, 5500, 4800, 7500]}
df = pd.DataFrame(data)

# 按照 name 列进行分组,并计算 salary 的总和
grouped = df.groupby('name').sum()

# 打印结果
print(grouped)

输出结果如下所示:

         age  salary
name               
Alice     53    9800
Bob       60   11500
Charlie   67   14500

在这个示例中,我们按照 name 列对 DataFrame 进行分组,并计算每个分组中 salary 列的总和。groupby() 方法返回一个 GroupBy 对象,我们可以对该对象调用聚合函数(如 sum())进行聚合操作。最后得到的结果是一个新的 DataFrame,其中包含每个分组的总和。

除了单列分组,我们还可以按照多列进行分组。例如,可以按照 name 和 age 两列进行分组,并计算每个分组中 salary 列的总和。示例代码如下:

import pandas as pd

# 创建示例 DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie', 'Bob', 'Alice', 'Charlie'],
        'age': [25, 30, 35, 30, 28, 32],
        'salary': [5000, 6000, 7000, 5500, 4800, 7500]}
df = pd.DataFrame(data)

# 按照 name 和 age 两列进行分组,并计算 salary 的总和
grouped = df.groupby(['name', 'age']).sum()

# 打印结果
print(grouped)

输出结果如下所示:

             salary
name    age        
Alice   25     5000
        28     4800
Bob     30    11500
Charlie 32     7500
        35     7000

在这个示例中,我们按照 name 和 age 两列对 DataFrame 进行分组,并计算每个分组中 salary 列的总和。最后得到的结果是一个包含两个索引列的新 DataFrame,其中每个分组的总和都被计算出来了。

相关文章