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

如何使用Pandas逐行计算列平均值及分段平均值?

解决方案

首先构造你的目标DataFrame:

import pandas as pd

df = pd.DataFrame({'val': [10, 20, 30, 40, 30]}, index=[1, 2, 3, 4, 5])

1. 计算逐行累计平均值avg

用Pandas的expanding()方法,它会从第一行开始逐步扩展计算窗口,配合mean()就能直接得到逐行累计的平均值:

df['avg'] = df['val'].expanding().mean()

2. 计算分段累计平均值avg_sep

先给数据打分组标签:把索引≤3的行归为一组,索引>3的行归为另一组。再按分组计算组内的累计平均值:

# 生成分组标识,索引>3的行自动归为新分组
df['group'] = (df.index > 3).cumsum()
# 按分组计算组内累计均值,去除分组索引层
df['avg_sep'] = df.groupby('group')['val'].expanding().mean().reset_index(level=0, drop=True)
# 不需要分组列的话可以删除
df.drop('group', axis=1, inplace=True)

最终运行结果完全符合预期:

val   avg  avg_sep
1   10  10.0     10.0
2   20  15.0     15.0
3   30  20.0     20.0
4   40  25.0     40.0
5   30  26.0     35.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:00:55