将纯文本和DataFrame写入CSV文件

时间:2018-02-06 20:04:36

标签: python pandas dataframe file-io

我使用的文件格式需要2-3个标题或指标行以及表格格式的数据。目前,我正在使用下面的代码来完成任务。

sevTmp和sceTmp是两个制表符分隔的文本文件,我暂时写了我的数据框。为清楚起见,这些数据框使用它们各自的to_csv()方法写入文件。

代码示例

severitiesELD.to_csv(sevTmp, sep = '\t', \
columns = severitiesELD.columns, index = False, header = severitiesCols)

scenariosELD.to_csv(sceTmp, sep = '\t', \
columns = scenariosELD.columns, index = False, header = scenariosCols)

在下面的块中,我将它们读入内存,并根据文件格式的结构插入其他几行(实际文本和间距)。 sevString / sceString表示除数据帧数据之外的两条必需行

这些行:

sevString = '#Severities\n'
sceString = '#Scenarios\n'

我喜欢避免在数据框中写出/读回来并一次性将它们与我的指示符串一起写入(第一次)。我的解决方案工作得很好,但是如果可能的话,我想加快速度。当我继续并行研究替代方案时,会喜欢最好的建议。

with open(sevTmp,'r') as sevF:
    with open(sceTmp, 'r') as sceF:
        with open(finalFile,'w') as finalF:
            # Write the severities line
            finalF.write(sevString)

            # Write out the actual ELD data, and loss cause names
            finalF.write(sevF.read())

            # Add a space
            finalF.write('\n')

            # Add in the scenarios string
            finalF.write(sceString)

            # Add in data frame again, this time to test writing out second time
            finalF.write(sceF.read())

0 个答案:

没有答案