熊猫总和的总和

时间:2021-07-29 11:12:57

标签: python pandas dataframe sum

我正在尝试对 Pandas 中的一列进行分组,然后对分组进行求和。

这是一个示例 df 和我的预期输出:

d = {'a':[1, 1, 1, 1, 2, 2, 2], 'b': [3, 4, 5, 6, 7,8,9] }
data = pd.DataFrame(data = d)


# should return sum of sum of groups
# correct output would be 42

我知道我可以使用以下方法返回组的总和:

data.groupby('a')['b'].transform(sum)

# which returns

0    18
1    18
2    18
3    18
4    24
5    24
6    24
Name: b, dtype: int64
 

但是,我不确定如何获得组总和的总和。 即

# sum of groupby
# group 1: 18
# group 2: 24
# sum of sum of groupby
# 18 + 24 = 42

1 个答案:

答案 0 :(得分:2)

您需要使用 agg 代替 transform

res = data.groupby('a')['b'].agg(sum).sum()

资源:

42

data.groupby('a')['b'].agg(sum)

会给你

a
1    18
2    24
Name: b, dtype: int64