75. Tricks about Pandas 1#

75.1. Adding New Column from Groupby Results#

import pandas as pd

Create a dataframe

df = pd.DataFrame( {'city':['London','London','Berlin','Berlin'], 'rent': [1000, 1400, 800, 1000]} )
df
city rent
0 London 1000
1 London 1400
2 Berlin 800
3 Berlin 1000
df['total'] = df.groupby('city').transform('sum')
df
city rent total
0 London 1000 2400
1 London 1400 2400
2 Berlin 800 1800
3 Berlin 1000 1800
df['percent'] = df['rent']/df['total']
df
city rent total percent
0 London 1000 2400 0.416667
1 London 1400 2400 0.583333
2 Berlin 800 1800 0.444444
3 Berlin 1000 1800 0.555556