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

如何使用Python Pandas计算间隔回溯行的平均值

实现方案

逻辑说明

按需求可选择两种规则对齐方式,均满足仅最后3行保留有效值的要求:

  1. 规则1(匹配最后3行都有有效值的预期):对每行取当前行col1值、往前6行col1值、往前12行col1值,三者求平均
  2. 规则2(严格按字面“每次向前回溯6行”取3个值):对每行取往前6行col1值、往前12行col1值、往前18行col1值,三者求平均

完整代码

import pandas as pd

# 初始化示例数据
data = {'col1': [12, 13, 5, 2, 12, 12, 13, 23, 32, 65, 33, 52, 63, 12, 42, 65, 24, 53, 35]}
df = pd.DataFrame(data)

# ---------- 规则1实现(推荐,符合最后3行都有值的预期)----------
df['skipped_mean'] = (df['col1'] + df['col1'].shift(6) + df['col1'].shift(12)) / 3
# 清空最后3行以外的所有值
df.loc[df.index[:-3], 'skipped_mean'] = pd.NA

# ---------- 规则2实现(严格按字面回溯)----------
# df['skipped_mean'] = (df['col1'].shift(6) + df['col1'].shift(12) + df['col1'].shift(18)) / 3

结果说明

  • 规则1的最后3行计算结果:
    • 倒数第3行:23
    • 倒数第2行:39
    • 倒数第1行:37
  • 规则2仅倒数第1行有有效值,结果约为29.33
  • 后续如果数据行数变化,只需将df.index[:-3]中的3修改为你需要保留有效值的行数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:09:03