我正在尝试使用此功能将多个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:无效的起始字节
这是TraceBack:
8 for filename in all_files:
----> 9 df = pd.read_csv(filename, index_col=None,
header=0)
10 li.append(df)
11
谢谢。
答案 0 :(得分:0)
首先,您需要了解CSV文件使用的编码类型。您可以尝试使用https://docs.microsoft.com/en-us/windows/desktop/Multimedia/mci来预测CSV文件中使用的编码类型。使用以下命令可以轻松安装Chardet:
:e filename
安装chardet后,您可以使用以下命令行来预测CSV文件的编码:
pip install chardet
输出将是这样的:
chardet file_name.csv
然后检查CSV文件的编码,然后在代码中更改以下行:
file_name.csv: UTF-8-SIG with confidence 1.0
收件人:
df = pd.read_csv(filename, index_col=None, header=0)
您可以检查可用的Chardet: The Universal Character Encoding Detector。希望这可以解决您的问题。
答案 1 :(得分:0)
我会尝试:
pd.read_csv(filename, index_col=None, header=0, encoding='utf-8') #OR
pd.read_csv(filename, index_col=None, header=0, encoding='latin1')
答案 2 :(得分:0)
尝试指定以下内容:
df = pd.read_csv(filename, index_col=None, header=0, encoding='latin-1')
latin-1
编码很神奇-它永远不会失败。看看你得到什么。
如果这足够好-那就去吧。
如果没有,则必须找出CSV文件实际使用的编码方式。您可以尝试许多不同的编码,直到答案看起来还可以。
答案 3 :(得分:0)
如我所见,大熊猫编码已经有了很多答案。
这是另一种方法:
with open(file_source, encoding="utf8", errors='ignore') as file:
# Your code goes here
答案 4 :(得分:0)
这对我有用
pd.read_csv(filename,encoding = 'unicode_escape')