在 pandas 身上,如何在一行中收集重复的数据行呢?
问题描述
我有一个数据集,其中包含NBA球员每场比赛的平均统计数据。有些球员的统计数据是重复的,因为他们本赛季在不同的球队。例如:
Player Pos Age Tm G GS MP FG
8 Jarrett Allen C 22 TOT 28 10 26.2 4.4
9 Jarrett Allen C 22 BRK 12 5 26.7 3.7
10 Jarrett Allen C 22 CLE 16 5 25.9 4.9
我想对Jarrett Allen的统计数据求平均值,并将其放入一行中。我怎么才能做到这一点呢? 提前谢谢。
解决方案
可以groupby
使用agg
求平均值。对于非数字列,让我们取第一个值:
df.groupby('Player').agg({k: 'mean' if v in ('int64', 'float64') else 'first'
for k,v in df.dtypes[1:].items()})
输出:
Pos Age Tm G GS MP FG
Player
Jarrett Allen C 22 TOT 18.666667 6.666667 26.266667 4.333333
Nb.词典理解内容:
{'Pos': 'first',
'Age': 'mean',
'Tm': 'first',
'G': 'mean',
'GS': 'mean',
'MP': 'mean',
'FG': 'mean'}
相关文章