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

如何为LSTM训练用时间序列Pandas DataFrame填充两值间缺失值

时间序列缺失值填充方案(适配LSTM训练)

针对你需要填充实验时间序列中浓度缺失值的需求,**线性插值(或时间权重插值)**是最贴合实验逻辑且适合LSTM训练的方案——它能让浓度值在两个已知测量点之间平滑过渡,自然落在0-10的范围内,不会破坏序列的连续性。

先修正数据问题

你的示例数据最后一行的Timestamp应该是11:15(对应1小时后的测量点),否则时间顺序混乱,无法正确插值。

具体实现步骤(Python Pandas)

  1. 数据预处理:将时间列转为时间类型,确保序列有序
  2. 插值填充:用线性/时间权重方法填充NaN值

代码示例

import pandas as pd
import numpy as np

# 构造修正后的示例数据集
data = {
    'Timestamp': ['10:15', '10:20', '10:30', '10:40', '10:50', '11:00', '11:15'],
    'concentration': [0, np.nan, np.nan, np.nan, np.nan, np.nan, 10]
}
df = pd.DataFrame(data)

# 转换时间格式并确保序列有序
df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%H:%M')
df = df.sort_values('Timestamp').reset_index(drop=True)

# 方式1:线性插值(适合时间间隔均匀的情况)
df['concentration'] = df['concentration'].interpolate(method='linear')

# 方式2:时间权重插值(适合时间间隔不均匀的场景,精度更高)
# df['concentration'] = df['concentration'].interpolate(method='time')

# 查看填充结果
print(df)

结果说明

  • 线性插值会根据两个已知点的浓度差和时间间隔,均匀分配中间每个时间步的浓度值,所有填充值都会落在0-10之间
  • 时间权重插值会根据每个缺失点与已知点的时间距离计算权重,更适合时间间隔不固定的数据集
  • 这种填充方式保留了时间序列的趋势连续性,完全适配LSTM模型对序列特征的学习需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:55:59