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

如何解决Python中NaTType不支持strftime的错误?

解决NaTType不支持strftime的报错问题

当你的DataFrame中'Date'列存在空值时,直接用apply+strftime会因为空值转成NaT后无法调用strftime而报错,下面是两种简单的解决方式:

方法一:使用向量化的dt.strftime(推荐)

先将整列转换为datetime类型,再用dt.strftime处理,这个方法会自动忽略NaT值,无需手动判断:

df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y/%m/%d')

处理后原空值对应的位置会变成NaN,如果需要保留空字符串,可以再加一步替换:

df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y/%m/%d').fillna('')

方法二:在lambda中添加空值判断

如果一定要用apply,可以在lambda里先检查是否为有效日期,再执行格式化:

df['Date'] = df['Date'].apply(
    lambda x: pd.to_datetime(x).strftime('%Y/%m/%d') if pd.notna(x) else ''
)

这里如果原空值是NaN或空字符串,pd.notna(x)会返回False,直接返回空字符串(你也可以改成pd.NaT或其他你需要的默认值)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:35:36