python - Pandas: combine groupby-apply with join/merge -


i find myself doing groupby-apply on dataframe followed merging result original dataframe. here's example. suppose df has columns , b. want add column value sum of column b on rows same column value current row. following job sub-optimal

df.join(df.groupby('a')['b'].sum(), on='a', rsuffix='_sum') 

is possible instead keep original index in groupby-sum?

you can use groupby.transform:

df['b_sum'] = df.groupby('a').b.transform('sum') 

demo:

df = pd.dataframe({         'a': [1,1,2,2],         'b': [1,2,3,4]     })  df['b_sum'] = df.groupby('a').b.transform('sum')  df #     b   b_sum #0  1   1   3 #1  1   2   3 #2  2   3   7 #3  2   4   7 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -