gpt4 book ai didi

python - Pandas:如何在groupby之后将值分配给组的第一行?

转载 作者:行者123 更新时间:2023-12-04 13:32:55 25 4
gpt4 key购买 nike

我试图将值分配给 组的第一行在groupby之后?
输入:

ID Num
Aa 100
Bb 200
Cc 300
Bb 400
Aa 500


输出:

ID Num Sum
Aa 100 600
Aa 500
Bb 200 600
Bb 400
Cc300 300


代码:
base_df['Sum'] = base_df.groupby(['ID'])['Num'].transform('sum')
但是,此代码会将值 'Sum' 分配给 每行在组中:
我的输出:

ID Num Sum
Aa 100 600
Aa 500 600
Bb 200 600
Bb 400600
Cc 300 300

最佳答案

您可以使用 duplicated 进行分配:

s = df.groupby(['ID'])['Num'].transform('sum')
df.loc[~df.duplicated("ID"), "Sum"] = s
print (df)

ID Num Sum
0 Aa 100 600.0
1 Bb 200 600.0
2 Cc 300 300.0
3 Bb 400 NaN
4 Aa 500 NaN

关于python - Pandas:如何在groupby之后将值分配给组的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64002415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com