当前位置: 首页 > 知识库问答 >
问题:

将数据框中的字符串打印到文本文件时删除双引号

蔡修远
2023-03-14

我有一个dataframe,它包含一列和多个字符串。以下是数据的外观:

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

数据帧中几乎有100000个这样的行。我想把这些数据写入一个文本文件。

为此,我尝试了以下方法

    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。如果我将escapechar='/'添加到代码中,我会在多个地方得到'/'(但没有引号)。我也不想要“/”这个。

在写入文本文件时,是否可以在不添加任何其他转义字符的情况下删除引号?

共有2个答案

凌志学
2023-03-14

我能够使用单个空格作为分隔符向csv写入df,并在将其写入csv之前,通过将数据框中现有的字符串空格替换为非中断空格来删除字符串周围的“引号”。

df = df.applymap(lambda x: str(x).replace(' ', u"\u00A0"))

df.to_csv(outpath+filename, header=True, index=None, sep=' ', mode='a') 

我不能使用制表符分隔的文件作为我写输出的目的,尽管该解决方案也可以使用其他关键字来df.to_csv():引用=csv。QUOTE_NONE,quetechar=", exetechar=")

周涵畅
2023-03-14

根据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。无报价

您是否尝试过:

df。到“\u csv”(“out.csv”,sep=“,”,quoting=csv.QUOTE\u NONE,quotechar=“”,escapechar=“\\”)

 类似资料:
  • 问题内容: 我正在使用Python打开文本文档: 我想将字符串变量的值替换为文本文档。有人可以让我知道怎么做吗? 问题答案: 如果使用上下文管理器,则将自动为你关闭文件 如果你使用的是Python2.6或更高版本,则最好使用 对于python2.7及更高版本,你可以使用代替 在Python3中,该函数有一个可选参数 Python3.6引入了f字符串作为另一种选择

  • 下面是JSON字符串: 为了在java对象中反序列化这个字符串,我必须删除\,这可以使用string replace方法来完成。除此之外,在[和]之前还有双引号。我如何删除这些双引号或允许它们时,反序列化使用杰克逊。

  • 问题内容: 我正在从中国的AQI API中获取数据,正在将某些数据放入SQL Server数据库中,但效果很好。我还决定将API返回的所有内容添加到JSON文件中,以便以后使用。 每当我尝试将API返回的字符串附加到文件中时,都会收到“无效的过程调用或参数”错误 到目前为止,这是我所做的: 这就是我作为Jsonline参数传递的内容: 如您所见,我尝试在字符串上添加多余的双引号无济于事,还有其他我

  • 问题内容: 这是我的Json代码的示例: 如果我在程序中打印出该属性,则会得到以下输出: 如您所见,它保留了双引号。 有什么办法可以避免这种情况吗? 我的完整代码: java代码将其打印出来: 我的完整Java代码 我的Java程序的输出: 问题答案: 它的文档记录不正确,但是会为您提供一个表示JSON元素的字符串,并且适合于重新创建JSON序列化。你想要的是。如果您不查看字符串,这将引发错误,但

  • 问题内容: 如何删除文本文件中的特定字符串? 问题答案: 找到文件。 创建一个临时文件(否则,您必须先将所有内容读取到Java的内存中)。 确定字符集。 确定您要删除的字符串。 打开文件进行读取。 打开临时文件进行写入。 逐行读取文件。 从行中删除字符串。 将其写入临时文件。 关闭读取器和写入器(最好在块中)。 删除文件。 重命名临时文件。 也可以看看: Java教程-课程:基本I / O

  • 问题内容: 我想将数组打印到文件中。 我希望文件看起来像这样的代码完全相似。 假设$ abc是一个数组。 是否有任何一种解决方案,而不是每次外观都是常规的。 PS-我目前使用序列化,但是我想使文件可读,因为使用序列化数组很难读取。 问题答案: 无论是或将返回输出,而不是打印出来的。 PHP手册中的示例 然后,您可以使用保存。或在写入文件时直接将其返回: