输出到 excel 文件而不覆盖工作表

Output to excel file without overwriting sheets

我有一个 python 脚本,我是 运行,它目前做三件独立的事情,并将每个结果输出到不同的 excel 文件。是否可以将我的所有输出放在不同工作表上的一个 excel 文件中?似乎最新的结果总是覆盖整个 excel 文件。

下面是我的想法:

 df_finit1.to_excel('OutFile.xlsx', sheet_name = 'Sheet1') 
 df_finit2.to_excel('OutFile.xlsx', sheet_name = 'Sheet2') 
 df_finit3.to_excel('OutFile.xlsx', sheet_name = 'Sheet3') 

我还尝试使用 xlsx writer 创建一个包含 3 个不同工作表的文件,并输出到这些工作表,但我得到了相同的结果。有小费吗?

你必须像这样使用 ExcelWriter:(也许你必须安装这个模块)

##############################################################################
#
# An example of writing multiple dataframes to worksheets using Pandas and
# XlsxWriter.

import pandas as pd


# Create some Pandas dataframes from some data.
df1 = pd.DataFrame({'Data': [11, 12, 13, 14]})
df2 = pd.DataFrame({'Data': [21, 22, 23, 24]})
df3 = pd.DataFrame({'Data': [31, 32, 33, 34]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('result_multiple.xlsx', engine='xlsxwriter')

# Write each dataframe to a different worksheet.
df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet2')
df3.to_excel(writer, sheet_name='Sheet3')

# Close the Pandas Excel writer and output the Excel file.
writer.save()

您应该使用 ExcelWriter,它允许打开单个 .xlsx 文件并对其进行操作。

import pandas as pd

# Initialize xlsx writer
writer = pd.ExcelWriter('output_file.xlsx', engine='xlsxwriter')
workbook = writer.book

df1 = pd.DataFrame({"a": [1,2,3],
                    "b": [1,2,3]})

df2 = pd.DataFrame({"c": [1,2,3],
                    "d": [1,2,3]})

df3 = pd.DataFrame({"e": [1,2,3],
                    "f": [1,2,3]})

df1.to_excel(writer,
             sheet_name="sheet1",
             startrow=0,
             startcol=0)

df2.to_excel(writer,
             sheet_name="sheet2",
             startrow=0,
             startcol=0)

df3.to_excel(writer,
             sheet_name="sheet3",
             startrow=0,
             startcol=0)

writer.save()