2016-05-04 211 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

回答