因此,作为CSV文件的一部分,我试图使用pd.read_csv()转换为DataFrame,但我不断收到此错误:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 3 fields in line 2, saw 4


该文件的第一行如下:


“ yada”,“ yada”,“ yada”
“ yada”,“ yada”,“ aa bb” yada“ cc dd,ee”


问题是,在原始二进制内容中,第二行的“ yada”没有转义字符。

我应该在read_csv()方法中包括哪些参数,以便通过假设整个参数来正确解析该行

“ aa bb” yada“ cc dd,ee”

是一栏吗?

最佳答案

如果仅在最后一列中出现引用问题,那么可以在将数据加载为数据帧之前按以下方式处理数据:

import pandas as pd
import csv

data = []

with open('input.csv', newline='') as f_input:
    for row in csv.reader(f_input, quotechar='\x01'):
        data.append([v.strip('"') for v in row[:2] + [','.join(row[2:])]])

df = pd.DataFrame(data)
print(df)

对于给定的数据,这将为您提供:
      0     1                       2
0  yada  yada                    yada
1  yada  yada  aa bb "yada" cc dd, ee

关于python - 如何正确解析带内引号的CSV文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50553025/

10-12 17:40