You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于已有日期将DataFrame中NaT替换为后续递增的月度日期?

实现代码

首先确认日期列已转为datetime类型,后续用pandas原生方法处理即可:

import pandas as pd

# 示例DataFrame构造,实际使用时替换为你自己的df
df = pd.DataFrame({
    'column1': pd.to_datetime(['2020-11-01', '2020-12-01', '2021-01-01', pd.NaT, pd.NaT, pd.NaT]),
    'column2': [1,2,3,4,5,6]
})

# 取最后一个有效日期
last_valid = df['column1'].dropna().iloc[-1]
# 统计待填充的空值数量
na_num = df['column1'].isna().sum()
# 生成逐月递增的月初日期序列
fill_dates = pd.date_range(last_valid + pd.DateOffset(months=1), periods=na_num, freq='MS')
# 填充空值
df.loc[df['column1'].isna(), 'column1'] = fill_dates

说明

  • 用pd.DateOffset(months=1)处理月度偏移,无需手动计算年月,自动规避跨年、闰年等边界问题
  • freq='MS'强制生成每月1号的日期,完全匹配仅年月递增、日期固定为1号的需求
  • 全量使用pandas向量化操作,无循环遍历,符合Python数据分析领域的常规实现风格,性能优于逐行处理方案

内容的提问来源于stack exchange,提问作者Tmiskiewicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:09:01