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

如何用Pandas高效实现df2与df1前3行区间的滚动比较(免迭代)

Pandas高效实现滑动区间判断

核心思路

通过Pandas的滚动窗口(rolling)功能批量计算前3行的区间边界,再用向量式比较完成判断,全程避免迭代,适配大数据量场景。

实现步骤

  1. 计算前3行的区间边界
    对df1的Min列取滚动3行的最小值(即前3行的最小下限),对Max列取滚动3行的最大值(即前3行的最大上限),再通过shift(1)将结果对齐到当前行的判断位置,确保前3行返回NaN。

    代码:

    # 计算滚动窗口统计值并对齐
    rolling_bounds = df1.rolling(window=3).agg({'Min': 'min', 'Max': 'max'}).shift(1)
    
  2. 合并数据并完成区间判断
    将df2与滚动边界数据按索引合并,直接用向量式比较判断每个value是否落在对应区间内。

    代码:

    # 合并数据并执行判断
    result_df = df2.join(rolling_bounds)
    result_df['in_range'] = (result_df['value'] >= result_df['Min']) & (result_df['value'] <= result_df['Max'])
    
    # 提取最终结果
    final_result = result_df['in_range']
    

结果验证

  • 2022-01-04的value=99:对应前3行区间是[95, 98],99超出上限→结果False
  • 2022-01-05的value=96:对应前3行区间是[94, 97],96在区间内→结果True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:56:20