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

含NaN的6分钟间隔数据转5分钟重采样及线性插值修正

含NaN的线性插值重采样问题修正

问题场景

我有一组6分钟间隔的瞬时测量数据,需要重采样为5分钟间隔,但处理后10:05时刻的column_b本应为NaN却出现了数值,需要修正。

原始数据代码

import pandas as pd
import numpy as np

df = pd.DataFrame(zip(['10:00','10:06','10:12','10:18','10:24'],
                     [1, 2, 3, 0.5, 2.5], [0, np.nan, 5, 2.5, 10]),
                 columns=['date','column_a','column_b'])
df['date'] = pd.to_datetime(df['date'], infer_datetime_format=True)
df = df.set_index('date')

print(df)

原始数据输出

column_a  column_b
date                                   
2023-07-19 10:00:00       1.0       0.0
2023-07-19 10:06:00       2.0       NaN
2023-07-19 10:12:00       3.0       5.0
2023-07-19 10:18:00       0.5       2.5
2023-07-19 10:24:00       2.5      10.0

问题代码及异常结果

我原本用这段代码处理:

print(df.resample('1Min').interpolate(method='linear', limit=5).resample('5Min').asfreq())

得到的结果里,10:05的column_b不该有值:

column_a  column_b
date                                  
2023-07-19 10:00:00  1.000000  0.000000
2023-07-19 10:05:00  1.833333  2.083333 <--- 这里应该是NaN
2023-07-19 10:10:00  2.666667       NaN
2023-07-19 10:15:00  1.750000  3.750000
2023-07-19 10:20:00  1.166667  5.000000

问题原因

原代码先按1分钟重采样再插值,会忽略10:06时刻column_b的NaN标记,直接从10:00的有效值向10:05插值,导致本应缺失的位置出现了不合理的数值。

解决方案

要保留原始缺失点的约束,需先保留原始NaN,再限定仅在前后都有有效值的区间内插值。修改后的代码如下:

# 1分钟重采样,保留原始NaN值
df_1min = df.resample('1Min').asfreq()

# 仅在两个有效点之间插值,避免从单个有效点向外延伸
df_interpolated = df_1min.interpolate(method='linear', limit_area='inside')

# 重采样为5分钟间隔
result = df_interpolated.resample('5Min').asfreq()

print(result)

修正后输出

column_a  column_b
date                                  
2023-07-19 10:00:00  1.000000       0.0
2023-07-19 10:05:00  1.833333       NaN
2023-07-19 10:10:00  2.666667       NaN
2023-07-19 10:15:00  1.750000       3.75
2023-07-19 10:20:00  1.166667       5.00

关键参数说明

  • limit_area='inside':限定插值仅在前后都有有效数据的区间内进行,不会跨越NaN点向外延伸
  • 先执行resample('1Min').asfreq():确保原始数据中的NaN被保留在对应时间点,让插值逻辑识别到缺失约束

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:26:34