Jupyter Notebook中pd.to_datetime日期转换报错该如何解决
错误原因
报错根本原因是你传入pd.to_datetime的format参数和Date/Time列的实际字符串格式不一致,从报错信息的样例值09-01-2014 00:01可以看到两处不匹配:
- 你指定的日期分隔符是斜杠
/,实际数据用的是横杠- - 你指定的时间精度到秒
%H:%M:%S,实际数据只到分钟,没有秒的部分
解决方法
- 方法1:修改format参数完全匹配实际格式(推荐,转换速度最快)
df['Date/Time'] = pd.to_datetime(df['Date/Time'], format="%m-%d-%Y %H:%M")
- 方法2:不指定format让pandas自动推断格式(适合数据格式不统一的场景,大数据量下速度较慢)
df['Date/Time'] = pd.to_datetime(df['Date/Time'])
- 方法3:增加异常值处理参数,避免个别格式错误的行中断执行
如果确认大部分数据是%m-%d-%Y %H:%M格式,仅少量异常值,可以加errors='coerce'参数,不符合格式的会被转换为NaT空值,方便后续单独排查:
df['Date/Time'] = pd.to_datetime(df['Date/Time'], format="%m-%d-%Y %H:%M", errors='coerce') # 执行完可以用下方代码查看异常值 # df[df['Date/Time'].isna()]
内容的提问来源于stack exchange,提问作者Jigar Patel
相关产品推荐
相关产品推荐

