With this dataframe aggregation:
john = df[df['name']=='John'].agg(
total_points=('points', 'sum'),
mean=('points', 'mean'),
games=('games', 'max'),
G=('G', 'sum'),
A=('A', 'sum'),
FF=('FF', 'sum'),
FD=('FD', 'sum'),
FT=('FT', 'sum'),
FS=('FS', 'sum'),
DS=('DS', 'sum'))
I get this:
points games G A FF FD FT FS DS
total_points 245.500000 NaN NaN NaN NaN NaN NaN NaN NaN
mean 7.439394 NaN NaN NaN NaN NaN NaN NaN NaN
games NaN 33.0 NaN NaN NaN NaN NaN NaN NaN
G NaN NaN 18.0 NaN NaN NaN NaN NaN NaN
A NaN NaN NaN 6.0 NaN NaN NaN NaN NaN
FF NaN NaN NaN NaN 32.0 NaN NaN NaN NaN
FD NaN NaN NaN NaN NaN 25.0 NaN NaN NaN
FT NaN NaN NaN NaN NaN NaN 5.0 NaN NaN
FS NaN NaN NaN NaN NaN NaN NaN 77.0 NaN
DS NaN NaN NaN NaN NaN NaN NaN NaN 16.0
How do I reshape it in order to end up with:
total_points 245.500000
mean 7.439394
games 33.0
G 18.0
A 6.0
FF 32.0
FD 25.0
FT 5.0
FS 77.0
DS 16.0
CodePudding user response:
Adding sum
at the end
df[df['name']=='John'].agg(
total_points=('points', 'sum'),
mean=('points', 'mean'),
games=('games', 'max'),
G=('G', 'sum'),
A=('A', 'sum'),
FF=('FF', 'sum'),
FD=('FD', 'sum'),
FT=('FT', 'sum'),
FS=('FS', 'sum'),
DS=('DS', 'sum')).sum(axis=1)
CodePudding user response:
Why don't you directly use the correct mapping for the columns:
john = df[df['name']=='John'].agg(
total_points=('points', 'sum'),
mean=('points', 'mean'),
games=('points', 'max'),
G=('points', 'sum'),
A=('points', 'sum'),
FF=('points', 'sum'),
FD=('points', 'sum'),
FT=('points', 'sum'),
FS=('points', 'sum'),
DS=('points', 'sum'))