如何为多列DataFrame生成时间戳并向前填充缺失值
按指定时间频率扩展DataFrame并向前填充缺失值
核心解决方案
你不需要手动生成时间序列后再拼接,Pandas内置的resample或reindex方法可以直接完成需求,步骤如下:
步骤1:确保日期列是时间索引
首先要确认你的date列已经转为时间格式并设置为DataFrame的索引(如果还没做的话):
# 转换date列为datetime类型 df['date'] = pd.to_datetime(df['date']) # 设置为索引 df.set_index('date', inplace=True)
方法1:用resample直接重采样(推荐)
resample会自动生成指定频率的时间序列,同时可以直接调用ffill()向前填充缺失值:
# 按15分钟频率重采样并向前填充 result_df = df.resample('15min').ffill()
方法2:用已生成的new_date做reindex
如果你已经用pd.date_range生成了new_date,可以直接用reindex对齐时间序列,再填充:
# 对齐时间序列并向前填充 result_df = df.reindex(new_date).ffill()
示例输出
执行后你会得到符合预期的结果:
date col1 col2 col3 2023-01-01 00:00:00 Y N NaN 2023-01-01 00:15:00 Y N NaN 2023-01-01 00:30:00 Y N NaN ... 2023-01-02 00:00:00 Y N Y
内容的提问来源于stack exchange,提问作者Pythoneer
相关产品推荐
相关产品推荐

