拆分Pandas时间序列后子数据集内部出现间隙的原因排查
排查步骤
先确认原数据的时间索引是否真的连续无间隙
运行代码计算原数据时间间隔的分布:df.index.to_series().diff().value_counts()查看结果里是否存在大于1小时的间隔,若有则说明原数据本身就存在间隙,只是全局绘图时未显现。
检查训练集/验证集内部的时间连续性
分别对train和val执行间隔统计:train.index.to_series().diff().value_counts() val.index.to_series().diff().value_counts()定位具体出现间隙的时间点,对比原数据对应位置是否存在时间跳变。
确认索引类型与完整性
检查train和val的索引是否为DatetimeIndex且严格递增:print(type(train.index)) print(train.index.is_monotonic_increasing) print(type(val.index)) print(val.index.is_monotonic_increasing)避免因索引类型错误或乱序导致的绘图异常。
排查绘图时的显示问题
检查train和val中是否存在缺失值:print(train['MW'].isnull().sum()) print(val['MW'].isnull().sum())若存在缺失值,matplotlib绘图时会自动断开显示,造成“间隙”的视觉效果。
验证拆分逻辑的准确性
核对行号切割位置与时间索引的对应关系:print(df.iloc[train_split_end-1].name) # 应等于train.index[-1] print(df.iloc[train_split_end].name) # 应等于val.index[0]确保切割位置确实对应连续的时间节点。
内容的提问来源于stack exchange,提问作者illan
相关产品推荐
相关产品推荐

