Pandas数据帧to_csv转义双引号



我正在尝试以csv导出panda数据帧。有些数据包含双引号,我无法正确转义。

import pandas as pd
from io import StringIO
inp = [{'c1':10, 'c2':'some text'}, {'c1':11,'c2':'some "text"'}]
df = pd.DataFrame(inp)
output = StringIO()
df.to_csv(output, sep='t', escapechar='b', header=False, index=False)

结果我得到了双引号,用另一个双引号转义:

'10tsome textn11t"some ""text"""n'

但我需要它:

'10tsome textn11t"some x08"textx08""n'

我尝试了to_csv((函数的双引号、quotechar和引号参数的不同组合,但没有成功。我得到的最接近的是:

df.to_csv(output, sep='t', escapechar='b', header=False, index=False, doublequote=False)

这会导致正确转义的双引号,但整个单元格没有被双引号包裹,因此在接下来的步骤中无法正确解析

'10tsome textn11tsome x08"textx08"n'

有没有一种方法可以让熊猫用所需的转义符转义双引号?

PS。目前我只有一个变通办法来替换"其中\x08";在字符串缓冲区中手动

我通过以下设置解决了这个问题。

df.to_csv(output, sep="t", escapechar="\", header=False, index=False, doublequote=False)

escapechar="\"将在您的值中放一个带双引号的单反斜杠,因为您已经指定了doublequote=False,这将确保双引号与另一个双引号进行注释转义。

相关内容

  • 没有找到相关文章

最新更新