首页 > 解决方案 > 将数据框中的字符串打印到文本文件时删除双引号

问题描述

我有一个数据框,其中包含一个包含多个字符串的列。以下是数据的样子:

    Value
    EU-1050-22345,201908 XYZ DETAILS, CD_123_123;CD_123_124,2;1

数据框中有近 100,000 行这样的行。我想将此数据写入文本文件。

为此,我尝试了以下方法:

    df.to_csv(filename, header=None,index=None,mode='a')

但是当我这样做时,我将整个字符串放在引号中。我得到的输出是:

    "EU-1050-22345,201908 XYZ DETAILS, CD_123_123;CD_123_124,2;1"

但我想要的是:

    EU-1050-22345,201908 XYZ DETAILS, CD_123_123;CD_123_124,2;1 -> No Quotes

我也试过这个:

    df.to_csv(filename,header=None,index=None,mode='a',
               quoting=csv.QUOTE_NONE)

但是,我收到一个需要转义字符的错误。如果我在代码中添加 escapechar='/',我会在多个地方得到 '/'(但没有引号)。我也不想要'/'。

无论如何我可以在写入文本文件时删除引号而不添加任何其他转义字符?

标签: python-3.xpandas

解决方案


根据 OP 的评论,我相信分号把事情搞砸了。\如果使用制表符分隔 csv,我不再需要。

import pandas as pd
import csv

df = pd.DataFrame(columns=['col'])
df.loc[0] = "EU-1050-22345,201908 XYZ DETAILS, CD_123_123;CD_123_124,2;1"
df.to_csv("out.csv", sep="\t", quoting=csv.QUOTE_NONE, quotechar="",  escapechar="")

原答案:

根据这个答案,你需要指定escapechar="\\"使用csv.QUOTE_NONE

你有没有尝试过:

df.to_csv("out.csv", sep=",", quoting=csv.QUOTE_NONE, quotechar="", escapechar="\\")


推荐阅读