ParserError in read_csv()



我正在尝试读取100个CSV,并将所有CSV中的数据整理成一个CSV。我使用了:

all_files = pd.DataFrame()
for file in files :
all_files = all_files.append(pd.read_csv(file,encoding= 'unicode_escape')).reset_index(drop=True)

其中files=100个CSV 的文件路径列表

现在,每个CSV可能有不同数量的列。单个CSV,每行也可能有不同数量的列。我想匹配列标题名称,将所有CSV的数据放在正确的列中,并在旅途中不断向我的最终DF添加新列。

以上代码适用于30-40个CSV,然后中断并给出以下错误:

ParserError: Error tokenizing data. C error: Expected 16 fields in line 78, saw 17

任何帮助都将不胜感激!

有几种读取可变长度csv文件的方法-

首先,您可以预先指定列名。如果你不确定列的数量,你可以给出一个相当大的列

df = pd.read_csv(filename.csv, header=None, names=list(range(10)))

另一种选择是使用不同的分隔符将整个文件读取到一列中,然后用逗号分隔

df = pd.read_csv(filename.csv, header=None, sep='t')
df = df[0].str.split(',', expand=True)

这是因为您试图将所有CSV文件读取到单个数据帧中。当第一个文件被读取时,DataFrame的列数被决定,然后当馈送不同数量的列时,它会导致错误。如果你真的想连接它们,你应该在python中读取它们,调整它们的库,然后连接它们

相关内容

  • 没有找到相关文章

最新更新