熊猫按原始数据帧进行分组、求和和填充



这是我原来的df

import pandas as pd
df_1 = pd.DataFrame({'color': ['blue', 'blue', 'yellow', 'yellow'], 'count': [1,3,4,5]})
color   count   
blue    1   
blue    3   
yellow  4   
yellow  5   

我想按颜色列和总和计数列分组,然后用结果填充原始数据帧。所以最终结果应该看起来像:

df_2 = pd.DataFrame({'color': ['blue', 'blue', 'yellow', 'yellow'], 'count': [1,3,4,5], 
'total_per_color': [4,4,9,9]})

color   count   total_per_color
blue    1       4
blue    3       4
yellow  4       9
yellow  5       9

我可以使用分组和总和来完成,然后使用熊猫进行合并,但我想知道是否有更快的方法可以做到这一点?在SQL中可以用partition来实现,在R中我可以使用dplyrmutate。熊猫有类似的东西吗?

transformgroupby一起使用

df_1['total_per_color']=df_1.groupby('color')['count'].transform('sum')
df_1
Out[886]: 
color  count  total_per_color
0    blue      1                4
1    blue      3                4
2  yellow      4                9
3  yellow      5                9

最新更新