Pandas对数据分组后求和
在 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,其中每个分组的总和都被计算出来了。
相关文章