[英]Pandas, wrong datetime format
我有一个df,包含日期2999-01-01,该日期与指定的格式不匹配。
a date
prod1 2019/02/23
prod2 2999/01/02
当我使用时:
df.date=pd.to_datetime(df.date_DATE,format='%Y-%m-%d')
它返回错误:时间数据“ 2999-01-01 00:00:00.0”与指定的格式不匹配
怎么修? 谢谢
使用参数errors='coerce'
将超出limits
日期时间转换为NaT
,由于分隔符为/
,还将格式更改为%Y/%m/%d
。
df['date'] = pd.to_datetime(df['date'],format='%Y/%m/%d', errors='coerce')
print (df)
a date
0 prod1 2019-02-23
1 prod2 NaT
由于pd.Timestamp
表示为很长的纳秒 ,因此可表示的最大Timestamp
为2262(特别是pd.Timestamp.max
),因此您所做的将永远无法工作。
如果您不介意将时间表示为一整天的pd.Period
,则可以改用它。 例如:
In [12]: df
Out[12]:
a date
0 prod1 2019/02/23
1 prod2 2999/01/02
In [13]: df.date.apply(pd.Period)
Out[13]:
0 2019-02-23
1 2999-01-02
Name: date, dtype: object
In [23]: df.date.apply(pd.Period)[1]
Out[23]: Period('2999-01-02', 'D')
我脑海中浮现出一些东西:
import datetime
df.Date.apply(lambda x:datetime.datetime.strftime(x,'%Y-%m-%d'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.