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

Pandas中DataFrame日期列转datetime报错,请求技术协助

解决pandas将object类型日期转为datetime报错的问题

问题重现

DataFrame中Order Date列数据如下:

Order Date
0   04/19/19 08:46
2   04/07/19 22:30
3   04/12/19 14:38
4   04/12/19 14:38
5   04/30/19 09:27

该列数据类型为object:

df.dtypes
# 输出:
# Order Date          object

执行转换代码时报错:

df['Order Date']=pd.to_datetime(df['Order Date'], format='%m/%d/%y %H:%M')

报错信息:

ValueError: time data '04/19/19 08:46' does not match format '%m/%d/%y %H:%M' (match)

解决方法

1. 清理日期字符串的隐藏空白字符

多数情况下报错是因为字符串前后存在看不见的空格、换行符或制表符,先做数据清理:

# 去除字符串前后所有空白字符
df['Order Date'] = df['Order Date'].str.strip()
# 重新执行转换
df['Order Date'] = pd.to_datetime(df['Order Date'], format='%m/%d/%y %H:%M')

2. 让pandas自动推断日期格式

如果清理后仍报错,可以省略format参数,让pandas自动识别格式,同时用errors='coerce'标记转换失败的数据:

df['Order Date'] = pd.to_datetime(df['Order Date'], errors='coerce')

3. 排查异常数据

如果转换后出现NaT值,筛选这些行查看异常格式:

# 找出转换失败的行
invalid_rows = df[df['Order Date'].isna()]
print(invalid_rows)

确认是否有其他格式的日期混入(比如dd/mm/yyyy格式、缺少时间部分等),再针对性调整转换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:12