pd.to_datetime运行报错time data does not match格式不匹配问题
问题原因排查
- 年份格式符不匹配
你使用的
%y是两位年份的格式符(仅匹配21这类两位数的年份表示),但实际数据中的年份是4位完整年份2021,需要用大写的%Y格式符匹配4位年份。
- 日期分隔符不匹配
你指定的格式中使用斜杠
/作为年月日的分隔符,但实际数据中的年月日是用横杠-分隔,二者完全不对应。
- 时间字符串存在多余空白
报错信息里的时间字符串末尾带有多余空格
'2021-08-17 05:42:48 ',空格也会被纳入格式匹配校验,导致匹配失败。
修复方案
先对时间字符串做去空白处理,再替换为正确的格式字符串即可,修正后的代码如下:
# 先去除首尾空白,再用正确的格式转换 df['Event_Start_Time'] = pd.to_datetime(df['Event_Start_Time'].str.strip(), format='%Y-%m-%d %H:%M:%S')
如果你不想严格指定格式,也可以直接让pandas自动推断格式(性能略低于指定格式,但兼容性更强):
df['Event_Start_Time'] = pd.to_datetime(df['Event_Start_Time'], infer_datetime_format=True)
内容的提问来源于stack exchange,提问作者Sultanust
相关产品推荐
相关产品推荐

