read_csv读取\,作为分隔符

时间:2017-04-26 15:24:39

标签: python csv pandas

我知道read_csv()使用逗号(,)作为分隔符,但我有一个文件,其中某些单元格的内容中包含逗号。

在该文件中,作者使用反斜杠逗号(\,)来表明此逗号不是分隔符。

但是当我用read_csv()读取文件时,它会将所有逗号视为分隔符。以下是csv文件中的示例行:

346882588,206801833,1049600263,Dzianis Dzenisiuk,5,StuckPixel\, Inc.,Feb 11\, 2010,2,3,1265846400

我知道应该有n列,所以我逐行读取csv文件并删除额外的逗号和反斜杠逗号。

但应该有更好的方法。

1 个答案:

答案 0 :(得分:6)

您需要使用escapechar option

将反斜杠配置为转义字符
pandas.read_csv(fileobj_or_filename, escapechar='\\')

演示:

>>> import pandas, csv
>>> from io import StringIO
>>> f = StringIO(r'''346882588,206801833,1049600263,Dzianis Dzenisiuk,5,StuckPixel\, Inc.,Feb 11\, 2010,2,3,1265846400
... ''')
>>> df = pandas.read_csv(f, names='abcdefghij', escapechar='\\')
>>> df['f']
0    StuckPixel, Inc.
Name: f, dtype: object
>>> df['g']
0    Feb 11, 2010
Name: g, dtype: object