2017-06-13 52 views
0

我想從我有一個巨大的csv文件中讀取數據。我向我顯示這個錯誤UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 13: invalid start byte。有什麼辦法可以跳過導致拋出異常的行嗎?從數百萬行這些只是少數,我不能手動刪除它們。我嘗試添加error_bad_lines = False,但這並沒有解決問題。我使用的是通過Anaconda 4.4.0獲得的Python 3.6.1。如果有幫助,我也使用Mac。請幫助我,我是新手。使用read_csv從熊貓讀取錯誤的數據格式的csv文件

回答

0

在我看來,文件中有一些非ASCII字符無法解碼。大熊貓接受編碼爲read_csv參數(如果這能幫助):

my_file = pd.read_csv('Path/to/file.csv', encoding = 'encoding') 

的默認編碼是無,這就是爲什麼你可能會得到這些錯誤。 Here is a link to the standard Python encodings - 嘗試「ISO-8859-1」(aka'latin1')或者'utf8'開始。

熊貓允許您在讀取csv時指定要跳過的行,但您需要知道這些行的索引,在您的情況下這將非常困難。

+0

謝謝我能夠讀取csv文件。但是,對於文件中的每個黑色單元,DataFrame都表示nan。我想構建一個像'if df.col [0] == nan'等等語句那麼一些東西。但那說nan沒有被定義。我可以在平等聲明中加入什麼? – anon

+0

是否要刪除「nan」行?如果你想這樣做,你可以做一些像 'df = df [df.Column_name ==「nan」]' 應該工作,或者 'df = df [df ['Column_name']。str。比較(「南」)]' 如果你想找到的單元格的值,做一些像 '如果df.iat [i,j] ==「nan」'與索引我和j – Peter

相關問題