因此,作为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/