[英]Moviepy problem: 'utf-8' codec can't decode byte 0xb5 in position 1494: invalid start byte
[英]utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte
我正在嘗試使用此功能將多個 CSV 文件合並為一個:
import glob
path = r'/content/drive/My Drive/DatiAirQuality/MI_Air_Quality/data'
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
但我收到此錯誤:“utf-8”編解碼器無法解碼位置 0 中的字節 0xb5:起始字節無效
這是回溯:
8 for filename in all_files:
----> 9 df = pd.read_csv(filename, index_col=None,
header=0)
10 li.append(df)
11
感謝你。
嘗試指定這個:
df = pd.read_csv(filename, index_col=None, header=0, encoding='latin-1')
latin-1
編碼很神奇——它永遠不會失敗。 看看你得到了什么。 如果這足夠好 - 那么你去。
如果沒有,您必須找出 CSV 文件實際使用的編碼。 您可以嘗試多種不同的編碼,直到答案看起來不錯。
正如我所看到的,已經有很多關於 Pandas 編碼的答案。
這是另一種方法:
with open(file_source, encoding="utf8", errors='ignore') as file:
# Your code goes here
首先,您需要知道 CSV 文件使用的編碼類型。 您可以嘗試使用Chardet:通用字符編碼檢測器來預測 CSV 文件中使用的編碼類型。 Chardet 可以使用以下方法輕松安裝:
pip install chardet
安裝 chardet 后,您可以使用命令行來預測您的 CSV 文件的編碼:
chardet file_name.csv
輸出將是這樣的:
file_name.csv: UTF-8-SIG with confidence 1.0
然后檢查 CSV 文件的編碼,然后更改代碼中的以下行:
df = pd.read_csv(filename, index_col=None, header=0)
到:
df = pd.read_csv(filename, index_col=None, header=0, encoding='utf-8')
我會嘗試:
pd.read_csv(filename, index_col=None, header=0, encoding='utf-8') #OR
pd.read_csv(filename, index_col=None, header=0, encoding='latin1')
這對我有用
pd.read_csv(filename,encoding = 'unicode_escape')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.