如何用Python将Excel列空值填充为上一个非空值
Python实现Excel日期列向前填充空值
问题原因
你之前编写的col = df['Start Date'] = np.where(df['Start Date'].isnull())代码仅能返回空值所在的索引位置,没有实现取值填充的逻辑,因此无法达到预期效果。
实现方案
pandas内置了向前填充方法ffill()(forward fill的缩写),原生支持“用上一个非空值填充后续空单元格”的需求,无需编写复杂循环判断,代码如下:
- 导入依赖库
import pandas as pd
- 读取文件并完成填充
# 读取原始Excel文件 df = pd.read_excel('C:/Users/Data.xlsx') # 对Start Date列做向前填充 df['Start Date'] = df['Start Date'].ffill()
- (可选)将填充完成的结果写回Excel
# 写入文件时设置index=False,避免导出多余的行索引列 df.to_excel('C:/Users/Data_填充完成.xlsx', index=False)
效果说明
执行上述代码后,Start Date列的空单元格会自动取同列上方最近的非空日期值填充,和你给出的预期结果完全一致。
如果读取文件后日期列格式异常,可以在填充后增加格式转换代码:
df['Start Date'] = pd.to_datetime(df['Start Date']).dt.date
内容的提问来源于stack exchange,提问作者CHL
相关产品推荐
相关产品推荐

