You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为二进制变量列生成累积均值并构建新DataFrame

计算Win列的累积胜率均值

需求说明

现有一个包含二进制Win列的DataFrame(约500条数据),需要新增Average列,每行值为Win列从第1行到当前行的累积胜率均值,示例如下:

WinAverage
11
11
00.66
00.5
00.4
10.5
00.42

实现方法(Pandas)

可以用两种简洁的方式实现:

方法1:累积求和除以行号

利用cumsum()计算到当前行的Win总和,再除以当前行的序号(从1开始)得到累积均值:

import pandas as pd

# 替换为你的实际DataFrame
df = pd.DataFrame({'Win': [1,1,0,0,0,1,0]})

# 计算累积均值并保留两位小数
df['Average'] = df['Win'].cumsum() / (df.index + 1)
df['Average'] = df['Average'].round(2)

方法2:使用expanding窗口均值

Pandas的expanding().mean()可以直接计算从第一行到当前行的滚动均值,代码更简洁:

df['Average'] = df['Win'].expanding().mean().round(2)

两种方法都能得到与示例一致的结果,处理500条数据的效率都很高。

内容的提问来源于stack exchange,提问作者Buckethead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:37:24