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

Pandas DataFrame日期转换错误:字符串转datetime格式解决方案

解决Pandas日期列转换问题

你使用format='%Y%m%d'报错,核心原因是原字符串日期的格式与该格式符不匹配(%Y%m%d对应20170812这类纯数字拼接的日期串)。要将列转换为对应8/12/2017格式的datetime类型,按以下方式处理:

1. 先确认原数据的真实格式

先查看列中几个样本值:

  • 如果原数据是8/12/2017(月/日/年),对应格式符为%m/%d/%Y
  • 如果原数据是12/8/2017(日/月/年),对应格式符为%d/%m/%Y

2. 指定匹配格式进行转换

若原数据格式统一,直接用对应格式参数转换:

# 示例:原格式为月/日/年(如8/12/2017)
data['Process Created Date'] = pd.to_datetime(data['Process Created Date'], format='%m/%d/%Y')

如果存在部分格式不规范的行,可添加errors='coerce'将无法转换的值设为NaT,方便后续清理:

data['Process Created Date'] = pd.to_datetime(data['Process Created Date'], format='%m/%d/%Y', errors='coerce')

3. 自动推断格式(适配多格式场景)

如果列中存在多种日期格式,让Pandas自动识别:

data['Process Created Date'] = pd.to_datetime(data['Process Created Date'], infer_datetime_format=True)

注意:自动推断的效率略低于指定格式,但适配性更强。

4. 设置显示格式(可选)

datetime类型本身存储的是时间戳,若要让它显示为8/12/2017的格式,可设置Pandas全局显示选项:

pd.options.display.date_format = '%m/%d/%Y'

或者将datetime列转为指定格式的字符串列:

data['Formatted Date'] = data['Process Created Date'].dt.strftime('%m/%d/%Y')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:43:18