python-3.x - 将数据框中的字符串打印到文本文件时删除双引号
问题描述
我有一个数据框,其中包含一个包含多个字符串的列。以下是数据的样子:
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='/',我会在多个地方得到 '/'(但没有引号)。我也不想要'/'。
无论如何我可以在写入文本文件时删除引号而不添加任何其他转义字符?
解决方案
根据 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="\\")
推荐阅读
- eloquent - 从视图中的where子句获取关系数据
- python - BeautifulSoup 错误:列表索引超出范围
- php - 带有 Ajax 表单提交的 Laravel 5 `Internal Server Error` (500)
- android - 从覆盖函数获取数据
- c# - C# FileStream.Read 不读取最后一个块
- php - php图像和文本上传不起作用
- matlab - 使用 cellfun 对集群进行回归时出错
- windows - 构建规则中的 Bazel 环境变量
- html - Safari 11.3.1 状态栏白底白字
- mysql - SQL 查询 - 从以逗号分隔的一列中获取数据并按行显示