2017-08-18 25 views
2

進口困難,我有一個CSV文件格式如下:與read_csv

0;2017-02-16 15:08:16;81,307877;;;;;;; 

所以,分號作爲分隔符,日期和時間,並與小數逗號浮動。最後還有一堆分號。

熊貓csv_read應該是一個很好的解決方案。然而,經過很多嘗試,我覺得很困難。我不明白如何處理文件末尾的「;;」,我很不確定我是否理解csv_read在涉及更詳細的控制可能性時的工作原理。

對於經常使用csv_read的人來說,這必須是一個非常簡單的問題......我希望。我花了相當長的一段時間,它已經...

一個例子:

pd.read_csv(r'C:\Users\Henrik\PycharmProjects\Regforce\Kort_del_1.csv', 
encoding="latin", sep=';', decimal=',', usecols=[0, 1, 2, 3]) 

作爲回報,我得到:

ÿþ0 Unnamed: 1 Unnamed: 2 Unnamed: 3 
0  NaN   NaN   NaN   NaN 
1  NaN   NaN   NaN   NaN 

我也試圖「逼」類型的每一個沒有結果的列...?

更新: 我發現了一個有趣的帖子,http://pythonforengineers.com/website-visitors-part-2-dealing-with-corrupt-data/ ...所以我下載了HEX閱讀器,並在輸入文件的開頭髮現了一些奇怪的東西。這似乎是上表中「ÿþ0」背後的原因。如果我在Notebook中打開它,但無法在文件中看到它。

這可能是文件中NaN的起源嗎?我該如何處理它?看起來像read_csv能夠識別列的存在,但我無法獲得任何值......?

回答

2

我會以這種方式使用read_csv

df = pd.read_csv('yourfile.csv', sep=';', header=None, decimal=',', usecols=[0,1,2]) 

所以閱讀的一切,因爲你在最後有分號你不感興趣,只考慮僅前三列。

編輯:感謝piRSquared評論,將decimal=','添加到args。

0

該問題被確定爲與輸入文件相關。我做了我應該做的首先: - 創建一個新的文件具有相同的結構一個是要導入,然後 - 測試

有了這樣的文件,導入使用read_csv了我少比一分鐘設置和適應我的需要。

因此,問題轉換爲了解輸入文件。有些東西可以用HEX閱讀器看到,這是不可見的......但這是一個完全不同的話題。