将组总计添加到 Pandas 中的数据框的最佳方法
Best Way to add group totals to a dataframe in Pandas
我有一个简单的任务,我想知道是否有更好/更有效的方法来完成。我有一个看起来像这样的数据框:
Group Score Count
0 A 5 100
1 A 1 50
2 A 3 5
3 B 1 40
4 B 2 20
5 B 1 60
我想添加一个列来保存组总计数的值:
Group Score Count TotalCount
0 A 5 100 155
1 A 1 50 155
2 A 3 5 155
3 B 1 40 120
4 B 2 20 120
5 B 1 60 120
我这样做的方式是:
Grouped=df.groupby('Group')['Count'].sum().reset_index()
Grouped=Grouped.rename(columns={'Count':'TotalCount'})
df=pd.merge(df, Grouped, on='Group', how='left')
是否有更好/更简洁的方法将这些值直接添加到数据框?
感谢您的帮助。
df['TotalCount'] = df.groupby('Group')['Count'].transform('sum')
讨论了一些其他选项 here。
我有一个简单的任务,我想知道是否有更好/更有效的方法来完成。我有一个看起来像这样的数据框:
Group Score Count
0 A 5 100
1 A 1 50
2 A 3 5
3 B 1 40
4 B 2 20
5 B 1 60
我想添加一个列来保存组总计数的值:
Group Score Count TotalCount
0 A 5 100 155
1 A 1 50 155
2 A 3 5 155
3 B 1 40 120
4 B 2 20 120
5 B 1 60 120
我这样做的方式是:
Grouped=df.groupby('Group')['Count'].sum().reset_index()
Grouped=Grouped.rename(columns={'Count':'TotalCount'})
df=pd.merge(df, Grouped, on='Group', how='left')
是否有更好/更简洁的方法将这些值直接添加到数据框?
感谢您的帮助。
df['TotalCount'] = df.groupby('Group')['Count'].transform('sum')
讨论了一些其他选项 here。