Python 从列值同时具有引号和分隔符的pandas读取csv

Python 从列值同时具有引号和分隔符的pandas读取csv,python,csv,pandas,data-manipulation,Python,Csv,Pandas,Data Manipulation,这是一个csv文件“test.csv”的内容,我正试图通过pandas read_csv()读取它 这是我正在使用的命令- 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文件“test.csv”的内容,我正试图通过pandas read_csv()读取它

这是我正在使用的命令-

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列的内容是“这个”,即“创建,做什么?”问题


当列中包含引号和分隔符时,如何读取文件?

熊猫不允许您保留格式错误的行,老实说,在您的示例中,我真的看不到忽略某些
字符而忽略其他字符的方法。我认为您使用
”的直觉,“'
作为分隔符,然后进行清理是最好的方法。如果您真的担心在一行中执行此操作:

message = pd.read_csv('test.txt', sep='", "', names = ['col1','col2','col3','col4'], skiprows=1).apply(lambda x: x.str.strip('"'))
它还处理列名中的反引号,并提供:

>>> message
>>> 
  col1 col2 col3                                     col4
0   v1   v2   v3                                       v4
1  v21  v22  v23  this, "creating, what to do? " problems

问题是您的csv似乎格式不正确。Pandas将允许您将
用作
quotechar
,但您的列中有未替换的引号字符。如果您的第三行是
“v21”、“v22”、“v23”、“this”、“creating”,该怎么办?\“问题“
,您可以使用
\
作为
转义码,这将起作用。csv不是我正在生成的内容,因此无法控制。对我有效的一个选项是使用
”,“
作为分隔符,但这将需要额外的列清理步骤来删除其他
@ragesz您能澄清一下您的问题吗。你是说“如果列标签没有被引用怎么办?”还是“如果某些列包含没有被引用的值怎么办?”我遇到了问题,我正在寻找解决方案,但没有找到任何解决方案,所以最后我问了,并得到了答案。
>>> message
>>> 
  col1 col2 col3                                     col4
0   v1   v2   v3                                       v4
1  v21  v22  v23  this, "creating, what to do? " problems