如何为DataFrame填充完整日期索引并沿用前值补全空缺
补全连续日期并填充空缺值的Pandas实现
步骤说明
要实现将间隔日期的DataFrame转换为连续日期、空缺值沿用前序值补全的需求,用Pandas可以快速完成,核心是日期索引转换、生成连续日期序列和前向填充三个操作。
完整代码示例
import pandas as pd # 1. 构造原始DataFrame raw_data = { 'Value': [23, 43, 12, 35] } raw_index = ['01/01/2013', '09/01/2013', '13/01/2013', '19/01/2013'] df = pd.DataFrame(raw_data, index=raw_index) # 2. 将字符串索引转为日期类型(注意格式是DD/MM/YYYY) df.index = pd.to_datetime(df.index, format='%d/%m/%Y') # 3. 生成从最小到最大日期的连续每日序列 full_date_range = pd.date_range(start=df.index.min(), end=df.index.max(), freq='D') # 4. 重新索引并使用前向填充补全空缺值 filled_df = df.reindex(full_date_range).ffill() # 可选:将日期索引转回原字符串格式(如需要) filled_df.index = filled_df.index.strftime('%d/%m/%Y') # 输出结果 print(filled_df)
运行结果
执行后会输出你期望的DataFrame:
Value 01/01/2013 23 02/01/2013 23 03/01/2013 23 04/01/2013 23 05/01/2013 23 06/01/2013 23 07/01/2013 23 08/01/2013 23 09/01/2013 43 10/01/2013 43 11/01/2013 43 12/01/2013 43 13/01/2013 12 14/01/2013 12 15/01/2013 12 16/01/2013 12 17/01/2013 12 18/01/2013 12 19/01/2013 35
内容的提问来源于stack exchange,提问作者spcol
相关产品推荐
相关产品推荐

