我在数据框中具有以下列日期值
Jan 2009
Feb 2003
2017-09-01 00:00:00
但是当我使用
np.where(df['Date'].astype(str).apply(len) == 8,pd.to_datetime(df['Date'],format="%b %Y"),pd.to_datetime(df['Date']))
它失败并显示以下错误:-
ValueError:时间数据datetime.datetime(2017,9,1,0,0)与格式'%b%Y'(匹配)不匹配
有什么想法吗?
答案 0 :(得分:1)
我认为有些日期时间的格式为YYYYMMDD
,因此长度为8
,因此不匹配%b %Y
:
print (df)
Date
0 20170901
1 Jan 2009
2 Feb 2003
3 2017-09-01 00:00:00
对我来说,仅工作to_datetime
:
df['Date'] = pd.to_datetime(df['Date'])
print (df)
Date
0 2017-09-01
1 2009-01-01
2 2003-02-01
3 2017-09-01