【发布时间】:2019-06-24 15:10:09
【问题描述】:
我正在使用pd.to_datetime将字符串转换为datetime;
df = pd.DataFrame(data={'id':['DD-83']})
pd.to_datetime(df['id'].str.replace(r'\D+', ''), errors='coerce', format='%d%m')
%d%m定义了零填充的日月,但是代码还是把上面的字符串转换成
0 1900-03-08
Name: id, dtype: datetime64[ns]
我想知道如果字符串中的月份和日期未填充为 0,如何避免将其转换为日期时间(例如,在这种情况下转换为 NaT)。所以
DD0306
DD0706
DD-83
将转换为
1900-06-03
1900-06-07
NaT
【问题讨论】:
-
我建议先
df['id'].str.replace(r'\D+', '-')再format='%d-%m',这样有明显的区别。它为-83返回NaT
标签: python python-3.x pandas datetime