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

如何让Pandas滚动窗口从数据中间位置开始计算?

Pandas滚动窗口从中间位置启动的实现方法

要让滚动窗口从数据中间位置开始计算,核心是跳过前面不需要的窗口,直接从指定起始点遍历,以下是两种实用方法:

  • 方法一:直接对滚动对象切片
    先确定你要启动的起始索引,直接对rolling生成的对象做切片,跳过前面的窗口:

    window_size = 100
    start_idx = 500  # 自定义的中间起始索引
    # 从start_idx开始遍历滚动窗口
    for data_window in df.rolling(window=window_size)[start_idx:]:
        # 执行你的耗时计算逻辑
        do_computation(data_window)
    
  • 方法二:先截取子DataFrame再生成滚动窗口
    如果想基于数据比例确定起始位置(比如从数据一半处开始),先截取对应范围的子DataFrame,再生成滚动窗口,避免处理前面的无效窗口:

    window_size = 100
    total_rows = len(df)
    start_row = total_rows // 2  # 取数据中间行的索引
    # 确保截取的子DataFrame能生成完整窗口,避免索引越界
    start_pos = max(start_row - window_size + 1, 0)
    for data_window in df.iloc[start_pos:].rolling(window=window_size):
        # 执行你的耗时计算逻辑
        do_computation(data_window)
    

注意:如果只需要处理完整窗口,可以直接从window_size - 1 + 起始偏移量的索引开始切片,这样遍历到的每个窗口都是满足大小要求的完整窗口,不会出现前半段行数不足的不完整窗口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:42:39