2016-07-27 73 views
0

我有一個CSV其中有日期格式爲:爲什麼pandas中的日期以不同的格式顯示爲輸入(CSV)數據?

Date 
01/01/1997 
02/01/1997 
03/01/1997 
04/01/1997 

我將數據導入使用df = pd.read_csv('data.csv')

當我看到在數據幀保存的數據出現在不同的數據集格式:

df['Date'] 


Date 
1997-1-1 
1997-1-2 
1997-1-3 
1997-1-4 

我不明白爲什麼會發生這種情況。

我試着用搜索引擎找&對SOF,但一直沒能找到答案......

+0

是什麼'DF [ 「日」] dtype'顯示?我相信'pandas'已經自動識別出這個列包含日期並將它們轉換爲'datetype'對象。不過,您可能希望以這種格式保存'df [「Date」]',並執行下面的@DeepSpace建議。或者將'dtype = {「Date」:str}'添加到'read_csv()'調用中,以保持這些值不變(以及字符串)。 – dmn

+4

YYYY-MM-DD是ISO 8601日期格式。 http://www.iso.org/iso/home/standards/iso8601.htm – Alexander

+0

@dmn'df ['Date']。dtype'給出'dtype('O')'??如果我通過'dtype = {'GMT':str}'我仍然可以得到'dtype('O')' –

回答

1

因爲這是pandas默認時間格式。

你可以通過read_csvdayfirst=True,如可以在documentation可以看出:

dayfirst:布爾值,默認爲false DD/MM格式的日期,您可以使用國際和歐洲格式

+0

感謝您的回答。你能解釋爲什麼其他數據集沒有發生同樣的情況嗎?在另一個數據集中,CSV看起來像'12/02/2006',在大熊貓看起來是一樣的:'12/02/2006' –

+0

@VinylWarmth嘗試@dmn在兩個數據集的評論中建議的內容。在第二種情況下,列類型可能是'str'而不是'datetime'。 – DeepSpace

+0

這兩個數據集都顯示類型爲'dtype('O')' –

1

parse_datesread_csv選項可以獲取與.csv文件格式相同的數據。關鍵是dayfirst=True先得到日期,然後你可以相應地改變。 您也可以更改爲以下格式:

df.apply(pd.to_datetime, dayfirst=True) 

如需進一步閱讀,請參閱文檔http://pandas-docs.github.io/pandas-docs-travis/

+0

@VinylWarmth請驗證答案,如果這對你有用。 –

相關問題