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

如何使用Pandas计算带额外判断条件的滚动均值?

Pandas 滚动均值条件赋值实现方法

首先需要先对原始3-day-min列做预处理,将占位符-转换为数值类型可识别的缺失值,避免后续计算报错:

import pandas as pd
import numpy as np

# 转换3-day-min列为数值类型,非数值的'-'会自动转为NaN
df['3-day-min'] = pd.to_numeric(df['3-day-min'], errors='coerce')

运行你原有的滚动均值计算代码:

df['rolling_mean'] = df['3-day-min'].rolling(3).mean()

接下来实现你的判断逻辑,有两种常用实现方式:

方法1:np.where 逻辑直观写法

完全匹配你描述的判断规则,可读性高:

# 规则:滚动均值>Total时取Total,否则取滚动均值
df['rolling_mean'] = np.where(
    df['rolling_mean'] > df['Total'],
    df['Total'],
    df['rolling_mean']
)

方法2:取最小值简化写法

你的需求本质是取「计算得到的滚动均值」和「当前行Total值」的较小值,可以直接用np.minimum简化代码:

df['rolling_mean'] = np.minimum(df['rolling_mean'], df['Total'])

两种方法得到的结果完全一致,你可以根据自己的习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:39:03