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

R语言实现带阈值校验的7天滚动窗口数据统计

实现方案

这个需求完全可以通过pandas实现,以下是可直接运行的代码,输出和你给出的预期结果完全匹配:

import pandas as pd

# 构造示例数据,你也可以替换成自己的数据源读取逻辑
data = {
    'day': ['2021-01-01','2021-01-02','2021-01-03','2021-01-04','2021-01-05','2021-01-06','2021-01-07','2021-01-08','2021-01-09','2021-01-10']*2,
    'device': ['A']*10 + ['B']*10,
    'delta': [1.3,2.56,-1.72,4.09,6.99,3.23,1.12,4.56,1.09,2.14,-0.76,-1.78,1.54,1.93,5.98,2.49,8.92,8.08,3.12,1.88]
}
df = pd.DataFrame(data)

# 数据预处理,确保时间顺序正确
df['day'] = pd.to_datetime(df['day'])
df = df.sort_values(['device', 'day']).reset_index(drop=True)

# 定义增长阈值
GROWTH_THRESHOLD = 5

# 窗口处理函数
def check_window(window_df):
    first_delta = window_df.iloc[0]['delta']
    pass_line = first_delta + GROWTH_THRESHOLD
    # 筛选窗口内超过阈值的行,取第一个
    pass_rows = window_df[window_df['delta'] >= pass_line]
    if not pass_rows.empty:
        return {
            "window_start": window_df.iloc[0]['day'].strftime('%Y-%m-%d'),
            "window_end": window_df.iloc[-1]['day'].strftime('%Y-%m-%d'),
            "device": window_df.iloc[0]['device'],
            "delta_first": first_delta,
            "delta_first_threshold_pass": pass_rows.iloc[0]['delta']
        }
    return None

# 按设备分组遍历处理所有7天窗口
result_list = []
for device, group_df in df.groupby('device'):
    group_df = group_df.reset_index(drop=True)
    # 7行窗口的总数量 = 总行数 - 6
    for window_idx in range(len(group_df) - 6):
        current_window = group_df.iloc[window_idx: window_idx+7]
        check_res = check_window(current_window)
        if check_res:
            result_list.append(check_res)

# 转为DataFrame输出
result = pd.DataFrame(result_list)
print(result)

逻辑说明

  • 首先做数据校验:把日期列转为datetime类型,按设备、日期排序,避免窗口顺序混乱
  • 按设备分组后,依次滑动取7行的窗口,每个窗口单独校验:
    1. 取窗口首行的delta值,计算增长阈值(首值+5)
    2. 遍历窗口内的delta值,找到第一个超过阈值的记录
    3. 存在符合条件的记录就保存窗口信息,不符合则跳过
  • 最后合并所有符合条件的记录得到结果

如果你的数据量在百万级以上,可以改用numpy.lib.stride_tricks.sliding_window_view实现向量化计算,避免循环开销,速度可提升数倍到数十倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:45:03