python - python pandas计算平均值
问题描述
我有一个这样的数据框:
pk_dcdata threshold last_ep diff
window
1 11075761 0.00001 4 3
1 11075768 0.00001 7 6
2 11075769 0.00001 1 -1
2 11075770 0.00001 1 -1
3 11075771 0.00001 1 0
3 11075768 0.00001 7 6
我想计算“差异”列中的平均值,但与索引“窗口”进行比较,并将平均值保存到新列表中。例如window = 1,均值是(3+6)/2,接下来是window = 2,所以(-1-1)/2,以此类推。
预期结果:list = [4.5,-1,3]
我尝试使用“rolling_mean”,但不知道如何设置移动长度。因为数据集很大,希望能快速得到结果。
解决方案
不要list
用作变量,因为 python 保留字。
需要按每个索引汇总mean
并最后转换Series
为list
:
L = df.groupby(level=0)['diff'].mean().tolist()
#alternative
#L = df.groupby('window')['diff'].mean().tolist()
print (L)
[4.5, -1.0, 3.0]
替代工作pandas 0.20.0+
,检查文档。
推荐阅读
- login - Liferay 自动登录过滤器触发两次
- sql - 如何在 SQL Server 中正确使用“介于”?
- c# - Gridview 弹出显示以获取更多详细信息
- javascript - 无法在 npm run build 上缩小代码
- docker - jupyter 内核在运行 nginx/1.13.12 网络服务器的 docker 容器中的 jupyter notebook 服务器上长时间运行期间重新启动
- r - 循环中的数据处理问题
- c# - 尝试使用 Dapper 为字符串赋值时请求退出无响应
- pdf - 将具有透明背景的 PDF 导入 Gimp
- javascript - 未销毁的 Angular DOM 元素
- javascript - 为什么条形图未与 y 轴对齐