我有一系列.csv文件,我正在用pandas.read_csv閱讀。從一堆列中,我只讀到2列(第2列和第15列)。熊貓隨機讀取一個NaN?
datafiles = glob.glob(mypath)
for dfile in datafiles:
data = pd.read_csv(dfile,header=6,usecols=['Reading','Value'])
的CSV看起來像 this,在頂部標題的幾行。每過一段時間,大熊貓都會將這些數字中的一個讀爲NaN。 Excel可以毫無困難地讀取這些值,並且可以直觀地檢查文件,但我沒有看到導致問題的原因。特別是在這種情況下,在這個文件中被索引爲265的行,在數據幀中被索引爲263,'Value'列當它應該是〜27.4時讀取NaN。
>>>data['Value'][264]
nan
這個問題是一致的,不會隨着我讀的文件數量而改變。在許多文件中,這個問題不存在。在其餘部分中,它只會在任一列中讀取一個隨機數作爲NaN。我嘗試使用dtype從自動float64更改爲np.float128,但這不能解決它。有想法該怎麼解決這個嗎?
更新:grep搜索顯示換行符是\ M,只有4個例外 - 每個文件頭部的行開頭。在進一步的檢查中,這個特定的點[264]在失敗的文件中被區別對待:在5/12文件中,它很好。在2/12文件中它被讀出爲27.0,在3/12中被讀出爲nan,在2/12中被讀出爲2.0。其中一個文件(一個讀出一個27.0)可用於download here
有可能文件在某些行上有不同的換行符?該文件是否爲UTF-8-BOM格式?嘗試使用記事本++將其切換爲UTF-8 –
您可以上傳某個有問題的CSV嗎? –
@CharlieHaley查看更新。謝謝! – k2r