首页 > 解决方案 > Python Pandas Groupby 平均值

问题描述

这是我目前拥有的。我想知道玩家第一次玩的平均值是什么,以及第二次玩家玩的平均值是什么。

播放器 时间
一个 5
一个 8
7
12

我想知道玩家第一次的平均时间是多少,第二次的平均时间是多少。所以第一次平均为 6,第二次平均为 10。

标签: pandasgroup-bymean

解决方案


groupby+cumcount()我们得到每组内的行数,即每个玩家的时间是第一、第二等:

>>> df.groupby('Player').cumcount()
0    0
1    1
2    0
3    1
dtype: int64

简单地重用它,groupby.mean()我们有以下解决方案:

>>> df['Time'].groupby(df.groupby('Player').cumcount()).mean()
0     6.0
1    10.0
Name: Time, dtype: float64

推荐阅读