python - read_csv 读取\,作为分隔符

标签 python csv pandas

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

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

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

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

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

但应该有更好的方法。

最佳答案

您需要将反斜杠配置为转义字符,使用 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

关于python - read_csv 读取\,作为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638398/

相关文章:

python - 使用 for 循环从数据框中选择一个值

php - 将客户端数据从 csv 导入 mysql

python - 选择正确的 csv 文件

Python CSV writer,如何处理引号以避免输出中的三重引号

Python:使用 Statsmodels - 线性回归预测 y 值

python - Pandas 时间序列 : How to plot only times of day (no dates) against other values?

Python shutil copytree : use ignore function to keep specific files types

python - 计算 10 个整数中的平均数和最小数

python - 将货币转换为 float (括号表示负数)

pandas - 如何修复属性错误: 'Series' object has no attribute 'find' ?