The following code:
df = pd.pivot_table(df, values=['FF', 'FS', 'FD', 'G'],
index=['name','points'],
aggfunc=[np.sum]).sort_values(by='name',ascending=True)
Generates this pivot_table
:
sum
FD FF FS G
points
Abner Vinícius 9.10 0.0 1.0 0.0 1.0
7.20 2.0 1.0 0.0 0.0
2.90 0.0 1.0 2.0 0.0
...
Is there a way I can sum all ocurrences from columns 'FD', 'FF' and 'FS' (7.0), divide this sum by the total occurences of column 'G' (1.0), and have the result (7.0) as a new index column ('FTotal_By_GTotal'), ending up with:
sum
FD FF FS G
name FTotal_By_GTotal points
Abner Vinícius 7.0 9.10 0.0 1.0 0.0 1.0
7.20 2.0 1.0 0.0 0.0
2.90 0.0 1.0 2.0 0.0
EDIT:
df.to_dict()
:
{('sum', 'FD'): {...('Abner Vinícius', 9.1): 0.0, ('Abner Vinícius', 7.2): 2.0, ('Abner Vinícius', 2.9): 0.0, ('Abner Vinícius', 2.1): 1.0, ('Abner Vinícius', 0.3): 0.0, ('Abner Vinícius', 0.0): 0.0, ('Abner Vinícius', -0.1): 0.0, ('Abner Vinícius', -0.5): 0.0... ('sum', 'FF'): {..('Abner Vinícius', 9.1): 1.0, ('Abner Vinícius', 7.2): 1.0, ('Abner Vinícius', 2.9): 1.0, ('Abner Vinícius', 2.1): 0.0, ('Abner Vinícius', 0.3): 0.0, ('Abner Vinícius', 0.0): 0.0, ('Abner Vinícius', -0.1): 0.0, ('Abner Vinícius', -0.5): 0.0.....}
df.columns
:
print (df.columns())
TypeError: 'MultiIndex' object is not callable