[英]Pandas - collapse multiple columns into one
使用此 dataframe 聚合:
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'))
我明白了:
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
我如何重塑它以最终得到:
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
最后加上sum
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)
为什么不直接对列使用正确的映射:
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'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.