Pandas percentage of total with groupby

PHOTO EMBED

Mon Feb 07 2022 01:13:37 GMT+0000 (Coordinated Universal Time)

Saved by @Milados

df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
                   'office_id': list(range(1, 7)) * 2,
                   'sales': [np.random.randint(100000, 999999)
                             for _ in range(12)]})
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
# Change: groupby state_office and divide by sum
state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(x.sum()))
content_copyCOPY

https://stackoverflow.com/questions/23377108/pandas-percentage-of-total-with-groupby