pandas - Python Pandas Groupby 平均值
问题描述
这是我目前拥有的。我想知道玩家第一次玩的平均值是什么,以及第二次玩家玩的平均值是什么。
播放器 | 时间 |
---|---|
一个 | 5 |
一个 | 8 |
乙 | 7 |
乙 | 12 |
我想知道玩家第一次的平均时间是多少,第二次的平均时间是多少。所以第一次平均为 6,第二次平均为 10。
解决方案
用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
推荐阅读
- python - 如何从字节数组初始化 RGBA cv::Mat?
- c# - 方法等待,程序在方法结束前退出方法
- powerbi - 如何使用过滤器嵌入公共报告?
- angular - Nativescript 图表缩放未在事件中返回缩放比例值
- python - 是否有 SciPy 方法来自动裁剪图像,即从 2d `numpy.ndarray` 中修剪零?
- vue.js - 为什么新插入的带有 router-link 标签的组件代替 v-for 列表中特定索引处的单个项目会出错?
- angular - FormArray 中的嵌套 FormGroups 不起作用
- spring-boot - 无法获得正确的 GET 响应
- python - 使用 Python 将 .xlsx 文件转换为 .xls 而不会丢失数据
- azure-iot-hub - 如何将图像输入到 Azure IOT Hub?