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

如何在Pandas中将datetime64[ns]转为20180822格式?解决转换报错

解决datetime64转指定格式字符串(object类型)的问题

报错原因

你的代码报错是因为:原列是datetime64[ns]类型,转成字符串后是带时分秒的格式(如'2022-10-28 11:09:00'),但你调用pd.to_datetime时指定了format='%Y%m%d',这个格式要求输入是无分隔符的纯年月日字符串,两者不匹配导致报错。而且你的逻辑搞反了——你是要把datetime转成字符串,不是把字符串转成datetime。

正确实现代码

因为原列已经是datetime64[ns]类型,直接用pandas的dt.strftime方法即可完成格式转换,返回的就是object类型的字符串:

df_ICF_news['date'] = df_ICF_news['date'].dt.strftime('%Y%m%d')

额外处理:脏数据兼容

如果数据中存在非datetime格式的脏数据,先统一转换为datetime类型(错误值会转为NaT),再格式化:

# 先确保列是datetime类型,错误值转为NaT
df_ICF_news['date'] = pd.to_datetime(df_ICF_news['date'], errors='coerce')
# 再格式化,NaT会转为空字符串
df_ICF_news['date'] = df_ICF_news['date'].dt.strftime('%Y%m%d')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:35:13