pd.to_datetime转换时间报错ValueError格式不匹配如何解决
问题原因
你指定的时间格式和实际字符串结构不匹配,存在两处错误:
- 原始时间字符串没有
:分隔符,你写的格式中额外添加了冒号,和实际结构不符 - 你的时间字符串末尾只有4位数字,对应小时+分钟,没有秒级数据,不需要写
%S格式符
修正方案
正确的格式规则为%d%b%Y%H%M,对应结构:2位日期 + 英文月份缩写 + 4位年份 + 2位小时 + 2位分钟,修正后代码如下:
import pandas as pd # 可选:如果你的系统locale为中文,需先切换为英文locale保证月份缩写识别正常 # Windows系统用下面这行 # import locale; locale.setlocale(locale.LC_TIME, 'English_US') # Linux/macOS系统用下面这行 # import locale; locale.setlocale(locale.LC_TIME, 'en_US.UTF-8') df_time = pd.DataFrame({'DOB': {0: '12FEB20210017', 1: '18AUG20210019'}}) df_time['DOB'] = pd.to_datetime(df_time.DOB, format='%d%b%Y%H%M')
转换完成后DOB列就会变成标准的datetime64类型,输出示例:
0 2021-02-12 00:17:00 1 2021-08-18 00:19:00 Name: DOB, dtype: datetime64[ns]
内容的提问来源于stack exchange,提问作者DataEnthusiast
相关产品推荐
相关产品推荐

