2016-03-25 32 views
0

我很困惑熊貓0.18.0。在我輸入的csv數據中,一個字段應該包含日期爲YYYYMMDD的字符串,但是有些行有這個缺失或錯誤格式。我想用可能的日期將此列表示爲日期時間,並且錯過哪裏不是。爲什麼to_datetime只產生pandas中浮點列的缺失值?

我嘗試了幾個選項,最讓我感覺不到的是parse_dates在讀取表格(與read_table)後,卻用pandas.to_datetime(DataFrame['Seriesname'], errors='coerce',format='%Y%m%d')強制轉換。這對數字不能代表日期(認爲'20100231',首先導入爲int64的列)或字符串根本不代表數字(認爲'2o1oo228',導入時爲object的列)的拼寫錯誤是可靠的。

此過程不穩健的是當列只包含數字,但一個字段爲空時。然後read_table將整個列作爲float64(而不是int64,它在numpy中沒有缺失值)導入整個列,並且上面的轉換會導致全部丟失,即使對於數據有意義的行也是如此。

有沒有辦法解決這個問題?

+0

你是什麼意思的「沒有轉換」?你不能只是設置轉換選項離開該列作爲一個字符串? – BrenBarn

+0

@BrenBarn看到編輯,謝謝。 –

回答

0

最好的辦法可能是完全避免float。通過指定dtype來預先將read_table中的數字轉換爲數字,並將該列保留爲objectto_datetime按預期處理。

HT:BrenBarn在評論中。

相關問題