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()
このコードは、2つのDataFrameをそれぞれ「x1」と「x2」という名前の2つのシートに保存します。2つの新しいDataFrameを作成し、同じコードを使用して2つの新しいシート「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()
'x1'、 'x2'、 'x3'、 'x4'の4枚のExcelファイルが必要です。「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」を追加するのに最適な方法はどれですか。