即使传递了正确的格式,str to datetime 也会返回 NaT

问题描述

我有一列日期字符串,例如“2018-W01”

我尝试使用 pd.to_datetime(urldict[key]['Date'],format ="%Y-W%W",errors='coerce') 进行转换,但是如果错误被强制转换,该列将返回 NaT。我还检查了整个列中的字符串格式是否相同,并且还测试了列中每个条目的 len 以确保它们是统一的。

我还尝试更改星期几/完全删除它以进行 to_datetime 转换,但仍然无法返回日期。我也通读了日期时间文档,但无法找出错误

有问题的数据框:

Date    Vals
2018-W01    0
2018-W02    0
2018-W03    0
2018-W04    0
2018-W05    0
2018-W06    0
2018-W07    0
2018-W08    0
2018-W09    0
2018-W10    0
2018-W11    0
2018-W12    0
2018-W13    0
2018-W14    0
2018-W15    0
2018-W16    0
2018-W17    0
2018-W18    0
2018-W19    0
2018-W20    0
2018-W21    0
2018-W22    0
2018-W23    0
2018-W24    0
2018-W25    0
2018-W26    0
2018-W27    0
2018-W28    0
2018-W29    0
2018-W30    0
2018-W31    0
2018-W32    0

解决方法

尝试添加星期几:

df1 = pd.DataFrame({'Date':['2018-W01']})

pd.to_datetime(df1['Date']+'-1',format='%Y-W%W-%w')

输出:

0   2018-01-01
Name: Date,dtype: datetime64[ns]