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

Pandas日期列转换:如何替换无效值?astype仅支持raise/ignore

解决DataFrame日期列转换时保留有效日期并替换无效值的问题

你可以使用pandas的pd.to_datetime()函数替代astype()来实现需求,这个函数支持errors='coerce'参数,能将无效日期值转为时间类型的空值NaT,之后再通过fillna()替换为你需要的默认值。

具体代码示例

import pandas as pd

# 第一步:转换日期列,无效值转为NaT(时间类型空值)
df["Date"] = pd.to_datetime(df["Date"], errors="coerce")
# 第二步:将所有NaT替换为指定默认日期(示例用2000-01-01,可自行修改)
df["Date"] = df["Date"].fillna(pd.to_datetime('2000-01-01'))

也可以合并为一行代码:

df["Date"] = pd.to_datetime(df["Date"], errors="coerce").fillna(pd.to_datetime('2000-01-01'))

关键说明

  • pd.to_datetime(..., errors="coerce"):自动识别有效日期格式完成转换,无法解析的无效值统一转为NaT,不会导致脚本崩溃。
  • fillna():将所有NaT替换为你指定的默认日期,注意默认值需要用pd.to_datetime()转为datetime类型,避免出现类型不匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:50:29