2017-09-06 64 views
-2

我使用pandas和odo導入CSV文件到數據庫中,有這種格式的文件中的日期字段27th August 2017 23:06:25我想轉換爲這種格式%d-%m-%Y %H:%M:%SValueError:time data'2017年8月27日23:32:58'與格式不匹配'%d-%m-%Y%H:%M:%S'(匹配)

,這裏是我的一段代碼我使用:

df['Date'] = pd.to_datetime(df['Date'], format='%d-%m-%Y %H:%M:%S')

我結束了與錯誤有一個想法解決這個

ValueError: time data '27th August 2017 23:32:58' does not match format '%d-%m-%Y %H:%M:%S' (match)

有人嗎?請

+2

你爲什麼想到'「8月27日2017''以適應格式'」% D-%間%Y''?它不甚密切。 – DeepSpace

+0

@DeepSpace OP聲明「我想轉換爲這種格式」。所以他不知道這種格式是用於_parsing_。畢竟這不是一個問題,因爲熊貓能夠解析輸入日期而沒有任何格式(並且我學到了一些東西) –

+0

我相信OP還沒有閱讀關於日期時間格式如何工作的文檔,因此他的期望是不正確的。這裏是:https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior – BoboDarph

回答

3

pandas可以解析這個罰款沒有格式說明:

In[25]: 
pd.to_datetime('27th August 2017 23:32:58') 

Out[25]: Timestamp('2017-08-27 23:32:58') 

所以你並不需要聲明的格式在這個例子中

這裏的另一點是,即使你嘗試過的東西像:

In[28]: 
pd.to_datetime('27th August 2017 23:32:58', format='%dth %B %Y %H:%M:%S') 

Out[28]: Timestamp('2017-08-27 23:32:58') 

這確實工作它會爲日期字符串像失敗:

'3rd June 2011 12:11:23'

因爲'rd'的,你不能傳遞到處理使用to_datetime當天格式的格式,見蟒蛇strptime參考。您需要,以剝離出那些爲它工作,但pandas是男人/女人足夠嗅出格式,所以沒有必要

+0

但是,如果您確實指定了格式,請確認%m是「08」而不是「August」 ! –

+0

@JohnZwinck對不起,你在這裏給我評論或OP? – EdChum

+0

當然是OP。我知道你知道%m不是「八月」。 –

相關問題