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
Post a Comment