Вывод в файл Excel без перезаписи листов - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть скрипт 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 различными листами и вывода на эти листы, но я получил тот же результат.Какие-нибудь советы?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Вы должны использовать 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()
0 голосов
/ 15 февраля 2019

вы должны использовать 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...