파이썬으로 정교한 데이터를 저장하기 위해 엑셀 파일을 사용하고 싶습니다. 내 문제는 기존 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"라는 두 개의 시트에 두 개의 DataFrame을 저장합니다. 두 개의 새 DataFrame을 만들고 동일한 코드를 사용하여 두 개의 새 시트 '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'의 네 장이있는 엑셀 파일을 원합니다. 나는 '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"를 추가하는 가장 좋은 방법은 무엇입니까?