Python編碼格式導致的csv讀取錯誤

2022-08-17 08:57:20 字數 932 閱讀 2433

本文記錄python小白我今天遇到的這兩個問題(csv.reader和pandas.csv_read):

今天處理資料時疏忽了,而且還偷懶把資料複製到xlsx儲存後,直接修改檔案字尾成.csv準備用來讀取。之後執行演算法要讀資料的時候果然問題來了。

import pandas as pd

path = 'water30.csv'

df=pd.read_csv(path)

注:後兩行可寫作df=pd.read_csv('water30.csv')。但由於read_csv本身有好多引數(雖然這裡不用), 故寫成path習慣好些。

這樣會報錯cparsererror: error tokenizing data. c error: expected 1 fields in line 4, saw 2

我在網上查了好多種解決辦法,由於read_csv的引數很多,所以各有其詞,我這裡遇到的應該也只是其中一種,久尋無果。直到我看到這裡說看了模組_csv.c的**後,發現檔案裡不能有 「\0」, 所以csv檔案不可以是unicode編碼的,可以是ansi。

針對我直接改字尾名的結果是,點選那個.csv開啟時就已經提示我: 

也就是這裡改字尾並沒有把檔案格式弄好。所以我選擇「另存為」改選了檔案格式為

之後,讀取就不會報錯了。

注:有個疑問沒有解決,就是那個我「直接改字尾得到的那個.csv」我用記事本開啟檢視了一下,編碼就是ansi啊。那我就不知道為什麼報錯了……不過問題倒是暫時解決了。

現在讀取到的格式為

是個結構體。

python報錯 由於預設編碼格式導致的報錯

報錯 syntaxerror non ascii character xe8 in file comment.py on line 1,but no encoding declared see for details報錯分析 上述報錯是由於編碼格式不匹配導致程式不能識別程式中的中文導致的。pytho...

python編碼格式

我們在寫 的時候經常會遇到亂碼等問題,其實就是因為編碼格式不正確,那我們現在來簡單看一下關於編碼的相關知識 計算機儲存資料是用0 1儲存的,為了儲存英文本元等,所以出現了乙個ascii編碼表,通過這個表就是把對應的英文轉換對應為相應的0 1資料儲存到計算機,但是英文只有26個字母,中文有6萬多漢字,...

Python 設定編碼格式

python在安裝時,預設的編碼是ascii,當程式中出現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal not in range 128 pyt...