首页 > 解决方案 > 使用“”将 DataFrame 导出为 csv

问题描述

我正在尝试使用以下代码使用 Python 3 将 DataFrame 导出到 csv 文件中:

import pandas as pds    
oee_2016 = pds.DataFrame({'"title"':['"OEE"', '"Qual"', '"Perf"', '"Disp"'],
                          '"subtitle"':['"%"', '"%"', '"%"', '"%"'],
                          '"ranges__001"':['"40"', '"75"', '"75"', '"75"'],
                          '"ranges__002"':['"60"', '"85"', '"85"', '"85"'],
                          '"ranges__003"':['"100"', '"100"', '"100"', '"100"'],
                          '"measures__001"':['"12"', '"34"', '"56"', '"78"'],
                          '"measures__002"':['"0"', '"0"', '"0"', '"0"'],
                          '"markers__-"':['"85"', '"95"', '"95"', '"95"']
                         })
oee_2016.to_csv('oee_2016.csv', index=False)

结果是:

"""title""","""subtitle""","""ranges__001""","""ranges__002""","""ranges__003""","""measures__001""","" "measures__002""","""markers__-""""""OEE""","""%""""""40""","""60""","""100 ""","""12""",""0""","""85""""""Qual""","""%""","""75""" ,"""85""","""100""","""34""","""0""","""95""""""Perf""","""%""","""75" "","""85""","""100""","""56""","""0""","""95""""""Disp""", """%""","""75""","""85""","""100""","""78""","""0""","" “95”“”"","""95""""""Perf""","""%""","""75""","""85""","""100""", """56""","""0""","""95""""""Disp""","""%""","""75""",""" 85""","""100""","""78""","""0""","""95""""","""95""""""Perf""","""%""","""75""","""85""","""100""", """56""","""0""","""95""""""Disp""","""%""","""75""",""" 85""","""100""","""78""","""0""","""95""""85""","""100""","""56""","""0""","""95""""""Disp""","""%" "","""75""","""85""","""100""","""78""","""0""","""95""""85""","""100""","""56""","""0""","""95""""""Disp""","""%" "","""75""","""85""","""100""","""78""","""0""","""95"""100""","""78""","""0""","""95"""100""","""78""","""0""","""95"""

但我只想要一个“而不是”,像这样:“OEE”,而不是“”“OEE”“”。

有人知道会发生什么吗?如何正确编码?

标签: pythoncsvdataframeformattingexport

解决方案


然后,当您在 Excel 中打开该结果时,它看起来就像您最初输入的值:每个值都有引号。Pandas 以 Excel 将复制您输入的引号的方式保存了文件;它需要 csv 文件中的三引号来实现该效果。

这可能不是你打算做的。最好在 DataFrame 对象中没有引号,并让to_csv方法将它们(仅一次)插入到输出文件中:

import pandas as pds    
oee_2016 = pds.DataFrame({'title':['OEE', 'Qual', 'Perf', 'Disp'],
                          'subtitle':['%', '%', '%', '%'],
                          'ranges__001':['40', '75', '75', '75'],
                          'ranges__002':['60', '85', '85', '85'],
                          'ranges__003':['100', '100', '100', '100'],
                          'measures__001':['12', '34', '56', '78'],
                          'measures__002':['0', '0', '0', '0'],
                          'markers__-':['85', '95', '95', '95']
                         })
oee_2016.to_csv('oee_2016.csv', index=False, quoting=1)

quoting=1请注意该方法的附加参数to_csv


推荐阅读