我try 了这么多选项,但无法将输入文件中的引号保留到我的输出文件中.

可重现代码:

# Input file
csv_data = '''A,B,C,D,E
234,mno,C22,U,
567,pqr,"C3""",U,5555
999,abc,"C99",D,9999
'''

# Load CSV data into dataframes
df = pd.read_csv(StringIO(csv_data), header=0, dtype=str, keep_default_na=False, engine='python', sep=',')

df.to_csv('output.txt', sep=',', index=False, header=True)

现在,output.txt如下所示:

A,B,C,D,E
234,mno,C22,U,
567,pqr,"C3""",U,5555
999,abc,C99,D,9999

预期输出:

A,B,C,D,E
234,mno,C22,U,
567,pqr,"C3""",U,5555
999,abc,"C99",D,9999

我只是不想在保存(包括引号)时丢失输入数据中的任何内容.

推荐答案

将参数quotingpd.read_csv相加,并与3(QUOTE_NONE)相加至df.to_csv:

# Load CSV data into dataframes
df = pd.read_csv(StringIO(csv_data), 
                 header=0, 
                 dtype=str,
                 keep_default_na=False, 
                 engine='python', 
                 sep=',', 
                 quoting=3)
print (df)
     A    B       C  D     E
0  234  mno     C22  U      
1  567  pqr  "C3"""  U  5555
2  999  abc   "C99"  D  9999

print (df.to_csv(sep=',', index=False, header=True, quoting=3))
A,B,C,D,E
234,mno,C22,U,
567,pqr,"C3""",U,5555
999,abc,"C99",D,9999

df.to_csv('output.txt', sep=',', index=False, header=True, quoting=3)

Python相关问答推荐

Python会扔掉未使用的表情吗?

根据不同列的值在收件箱中移动数据

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

根据另一列中的nan重置值后重新加权Pandas列

按列分区,按另一列排序

如果条件不满足,我如何获得掩码的第一个索引并获得None?

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

如何在图中标记平均点?

Tkinter菜单自发添加额外项目

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

幂集,其中每个元素可以是正或负""""

并行编程:同步进程

如何按row_id/row_number过滤数据帧

如何在Python请求中组合多个适配器?

如何将返回引用的函数与pybind11绑定?

如何在PythonPandas 中对同一个浮动列进行逐行划分?

利用SCIPY沿第一轴对数组进行内插

与同步和异步客户端兼容的Python函数

PYODBC错误(SQL包含-26272个参数标记,但提供了235872个参数,HY 000)