有1000 个csv 文件。它们都有不同的编码。我想用它们制作一个 DataFrame,但出现错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x84 in position 37: invalid start byte
csv 文件的结构如下
也就是说,编码在第一行指示,但不清楚如何将其传递给 pandas 以便它正确读取数据。
像这样试过但没有用
import pandas as pd
from pathlib import Path
data_dir = Path("data/")
df = pd.concat([pd.read_csv(f) for f in data_dir.glob("*.csv")])
print(df)
在输出中,您需要获得一个包含实体、值、字符串列的 csv 文件。此数据必须取自这 1000 个文件(逗号分隔符)。

只是让它不是一个单行的,而是一个很好的旧 for 循环。在循环中,读取文件的第一行,然后将其作为编码传递给
read_csv. 把所有东西都列在清单上。在循环之后做pd.concat。更新:读取 csv 的完整行是这样的:
添加了列名 - 1、2、3、4、5,因此默认情况下它假定有 5 列(出于
test-684.csv某种原因,它在文件中确定其中一行中有五列,为什么 - 我不还不明白)。