2015-10-16 132 views
2

我使用python的熊貓閱讀csv文件。 csv文件有一個日期時間列,它具有「9/1/2015 9:25:00 AM」的第二個精度,但是如果我在Excel中打開,它只有精確的「9/1/15 9:25」精度。而且,當我使用pd.read_csv()函數時,它只顯示最高精度。有什麼辦法可以用python解決這個問題嗎?非常感謝。使用Python更改CSV數據列格式

+0

你確定這是一個CSV的問題,而不是一個Excel格式的問題?默認情況下,當Excel打開一個CSV,它會轉換datetime值(相當煩人),然後進行格式化與它的「日期」的風格,是MM/DD/YYYY HH:MM AM/PM。嘗試改變格式爲「YYYY-MM-DD HH:MM:SS.000」 – Rejected

+1

你能告訴你如何真正以csv看起來(csv檔案也許前幾行),然後您正在使用的代碼。 –

回答

0

這是的Excel格式問題/理念的時間。出於某種原因,微軟更喜歡在用戶顯示器上隱藏秒和秒秒:即使MSDOS的dir命令也省略了秒。

如果我是你,我會使用Excel的format操作並將其設置爲顯示秒數,然後將電子表格保存爲CSV並查看它是否將任何內容記錄到記錄改進的格式。

如果不工作,你可能會探討建立一個宏它執行格式化,或使用IPC的一個到Excel指揮它做您的出價。

+0

Excel不會在CSV文件中保存任何內容以指示格式。它具體告訴你格式化將會丟失,並以此格式保存。 Excel可能會將日期時間值更改爲「42293.0037430556」之類的值,但這同樣很煩人。 – Rejected

0

進去「單元格格式」,進入d/mm/yyyy h:mm:ss作爲您的自定義格式選項

enter image description here

編輯:不知道我完全理解你的問題。試試這個:用一行「2015/9/1 9:25:00」創建一個文本文件,稱之爲test.csv。現在做df = pd.read_csv('test.csv', header=None)。如果您有df[0]打印列,你應該看到這一點:

In [35]: df[0] 
Out[35]: 
0 9/1/2015 9:25:00 AM 
Name: 0, dtype: object 

即熊貓剛剛讀列作爲字符串(對象)和秒都在那裏。

如果你想轉換爲時間戳,調用pd.to_datetime

In [36]: pd.to_datetime(df[0]) 
Out[36]: 
0 2015-09-01 09:25:00 
Name: 0, dtype: datetime64[ns] 

再次秒仍然存在。這回答了你的問題了嗎?

+0

嗨,我有90000 +這樣的文件。我不太可能使用此功能來手動更改格式。有沒有辦法讓我直接調用pd.read_csv()函數來顯示秒精度的時間?謝謝。 –