在 pandas 身上,如何在一行中收集重复的数据行呢? [英] How can repetitive rows of data be collected in a single row in pandas?

查看:34
本文介绍了在 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'}

这篇关于在 pandas 身上,如何在一行中收集重复的数据行呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆