Pandas重复时间索引替换及1分钟间隔时间插值实现方法问询
Pandas重复时间索引修复方案
首先执行前置检查,确保时间索引为datetime格式,未转换的话先执行:
import pandas as pd df.index = pd.to_datetime(df.index)
根据你的实际数据场景选择对应方案:
场景1:DataFrame行顺序符合1分钟序列逻辑,仅索引被错误赋值为10分钟重复值
不需要修改原始数据,直接替换索引即可:
# 以原索引第一个时间为起点,生成和DataFrame行数一致的1分钟连续索引 new_index = pd.date_range(start=df.index.min(), periods=len(df), freq='1T') df.index = new_index
场景2:仅10分钟时间点的数据有效,其余重复行是冗余数据,需要生成带空值/插值的1分钟完整序列
按以下步骤操作:
# 1. 去重重复时间索引,保留每个10分钟点的第一条数据(可修改keep='last'保留最后一条) df_unique = df[~df.index.duplicated(keep='first')] # 2. 生成覆盖数据时间范围的完整1分钟时间索引 new_index = pd.date_range(start=df_unique.index.min(), end=df_unique.index.max(), freq='1T') # 3. 重对齐索引,中间缺失的分钟位置自动填充NaN df_result = df_unique.reindex(new_index) # 可选操作:按时间序列逻辑插值补全空值 df_result = df_result.interpolate(method='time')
内容的提问来源于stack exchange,提问作者gis20
相关产品推荐
相关产品推荐

