【发布时间】:2016-06-11 17:55:00
【问题描述】:
这是 csv 文件“test.csv”的内容,我正在尝试通过 pandas read_csv() 读取它
"col1", "col2", "col3", "col4"
"v1", "v2", "v3", "v4"
"v21", "v22", "v23", "this, "creating, what to do? " problems"
这是我正在使用的命令 -
messages = pd.read_csv('test.csv', sep=',', skipinitialspace=True)
但我收到以下错误 -
CParserError: Error tokenizing data. C error: Expected 4 fields in line 3, saw 5
我希望第 3 行中第 4 列的内容是“这个,”创建,要做什么?“问题”
当一列可以包含引号字符和分隔符时如何读取文件?
【问题讨论】:
-
问题是您的 csv 似乎格式不正确。 Pandas 将允许您将
"用作quotechar,但您的列中有未转义的引号字符。如果您的第三行改为"v21", "v22", "v23", "this, \"creating, what to do? \" problems",您可以使用\作为escapechar,这样就可以了。 -
csv 不是我生成的,所以无法控制。
-
对我有用的一个选项是使用
'",'作为分隔符,但这需要额外的列清理步骤以删除其他"
标签: python csv pandas data-manipulation