如何在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
注意。字典理解的内容:
{'Pos': 'first',
'Age': 'mean',
'Tm': 'first',
'G': 'mean',
'GS': 'mean',
'MP': 'mean',
'FG': 'mean'}