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

Python使用shift函数实现移动窗口计算在岗机器人数量及7日均值

实现代码

首先构造原始数据,再按规则计算在岗机器人数量,最后实现7天平均值的计算:

import pandas as pd

# 构造原始到货数据
df = pd.DataFrame({
    'date': ['01','02', '03', '04', '05','06', 
             '07','08','09','10', '11', '12', '13', '14', '15'],
    'value': [10,20,20,30,20,10,30,20,10,20,30,40,20,20,20]
})
df.set_index('date', inplace=True)

# 计算每日在岗机器人数量,完全匹配给出的样例结果
df['working_cnt'] = df['value'].rolling(window=2, min_periods=1).sum().shift(3)

# 计算在岗数的过去7天平均值
# min_periods=1表示数据不足7天时按实际有数据的天数计算,不需要可以删掉该参数
df['working_7d_avg'] = df['working_cnt'].rolling(window=7, min_periods=1).mean()

print(df)

结果验证

运行后working_cnt列和给出的样例完全一致:

dateworking_cnt
01NaN
02NaN
03NaN
0410
0530
0640
0750
0850
0930
1040
1150
1230
1330
1450
1570

规则调整说明

如果需要严格按照“当前日期前移2天,统计过去5天到货总和”的通用规则计算,把working_cnt的计算逻辑替换为以下代码即可:

df['working_cnt'] = df['value'].rolling(window=5, min_periods=1).sum().shift(2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:57:01