pandas 读csv并在引号中加上转义的引号 [英] Pandas reading csv with a escaped quote in a quote

查看:33
本文介绍了 pandas 读csv并在引号中加上转义的引号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任务是使用Pandas读取此csv(即 pd.read_csv(filename)):

The task is to read this csv with Pandas (i.e.. pd.read_csv(filename)):

title,description
Jeans,"blue"
Jeans,"2\" seam"
Jeans,"2\" seam, blue"

尝试此代码

import os
import pandas as pd

with open("/tmp/test.csv", "w") as f:
    f.write('''title,description
Jeans,"blue"
Jeans,"2\" seam"
Jeans,"2\" seam, blue"
''')

pd.read_csv("/tmp/test.csv")

问题

预期输出:

    title   description
0   Jeans   blue
1   Jeans   2" seam
2   Jeans   2" seam, blue

但是实际上,它可以:

  • 阅读第一行没问题
  • 错误地读取第二行,但不会引发错误
  • 读取错误第三行失败

读取到 second 行的结果:

    title   description
0   Jeans   blue
1   Jeans   2 seam"

读取到第三行时出错:

ParserError:标记数据时出错.C错误:预期中有4个栏位3,看到了5

ParserError: Error tokenizing data. C error: Expected 4 fields in line 3, saw 5

这似乎是一个常见问题.熊猫 read_csv 中是否有可以处理此问题的配置?

This seem like a common problem. Is there a configuration in Pandas read_csv that can handle this?

推荐答案

默认情况下, 转义符为无.要将反斜杠指定为用于转义分隔符的单字符字符串(例如,双引号),请使用 escapechar ='\\':

In [23]: pd.read_csv('data', escapechar='\\')
Out[23]: 
   title    description
0  Jeans           blue
1  Jeans        2" seam
2  Jeans  2" seam, blue

这篇关于 pandas 读csv并在引号中加上转义的引号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆