Я хочу використовувати файли Excel для зберігання даних, розроблених за допомогою python. Моя проблема полягає в тому, що я не можу додавати аркуші до існуючого файлу Excel. Тут я пропоную зразок коду для роботи, щоб вирішити цю проблему
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)
x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()
Цей код зберігає два кадри даних на двох аркушах із іменами "x1" та "x2" відповідно. Якщо я створюю два нових DataFrames і намагаюся використовувати один і той же код для додавання двох нових аркушів, 'x3' і 'x4', вихідні дані втрачаються.
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)
x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df3.to_excel(writer, sheet_name = 'x3')
df4.to_excel(writer, sheet_name = 'x4')
writer.save()
writer.close()
Я хочу файл Excel із чотирма аркушами: 'x1', 'x2', 'x3', 'x4'. Я знаю, що 'xlsxwriter' - не єдиний "движок", існує "openpyxl". Я також бачив, що вже є інші люди, які писали про це питання, але все ще не можу зрозуміти, як це зробити.
Ось код, взятий за цим посиланням
import pandas
from openpyxl import load_workbook
book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Кажуть, що це працює, але важко зрозуміти, як. Я не розумію, що таке "ws.title", "ws" та "dict" у цьому контексті.
Який найкращий спосіб зберегти "x1" та "x2", а потім закрити файл, знову відкрити його та додати "x3" та "x4"?