UTF-8' 编解码器无法解码位置 0 中的字节0xb5:起始字节无效



我正在尝试将多个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文件实际使用的内容。您可以尝试很多不同的编码,直到答案似乎还可以。

这对我有用

pd.read_csv(filename,encoding = 'unicode_escape')

我会尝试:

pd.read_csv(filename, index_col=None, header=0, encoding='utf-8') #OR
pd.read_csv(filename, index_col=None, header=0, encoding='latin1')

首先,您需要知道CSV文件使用的编码类型。您可以尝试使用Chardet:通用字符编码检测器来预测CSV文件中使用的编码类型。可以使用:

轻松安装菜肴
pip install 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)

to:

df = pd.read_csv(filename, index_col=None, header=0, encoding='utf-8')

您可以检查Python支持的可用编码。希望这应该解决您的问题。

,我可以看到,熊猫已经有很多答案。

这是一种替代方法:

with open(file_source, encoding="utf8", errors='ignore') as file:
    # Your code goes here

最新更新