2016-05-04 135 views
2

当我遇到ValueError时,我试图将DataFrame列(字符串)转换为datetime格式。下面是一个使用字符串,而不是一个数据帧列的可重复代码(错误):Python 2.7:熊猫日期时间不适用于未来日期?

>>> import pandas as pd 
>>> pd.to_datetime('2007-08-17', format='%Y-%m-%d') #Works fine 
Timestamp('2007-08-17 00:00:00') 

>>> pd.to_datetime('2557-08-17', format='%Y-%m-%d') # Throws Error 
ValueError: time data '2557-08-17' does match format specified 

这是一个真正的问题还是我做错了什么?这怎么解决?

+0

这是因为您提供的日期大于'pd.Timestamp.max =“2262-04-11”'。你期望未来有多远? “pd.to_datetime”的文档字符串提到了这一点。 – wflynny

+0

@wflynny我不知道有一个最大限制。感谢那些信息。这些日期(很可能)是流经我的数据的垃圾值,但我宁愿不要在程序中有任何打嗝。 –

+1

如果值是垃圾,你可以做一些类似'df.loc [:,df.date_col> pd.Timestamp.max.isoformat()] = pd.NaT'。方法'pd.to_datetime'可以接受NaN/NaT值。 – wflynny

回答