从pandas中读取csv,其中包含quotechar和delimiter作为列值

时间:2016-02-28 19:01:34

标签: python csv pandas data-manipulation

这是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列的内容为“this”,创建,该怎么做?“问题”

如果列中包含quotechar和分隔符,如何读取文件?

1 个答案:

答案 0 :(得分:2)

pandas不允许你保留格式错误的行,说实话我并没有真正看到忽略某些"字符的方法而不是你的例子中的其他字符。我认为你使用'", "'作为分隔符然后进行清理的直觉是最好的方法。如果你真的担心在一行中这样做:

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