繁体   English   中英

熊猫,错误的日期时间格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM