Python ile ayrıntılandırılmış verileri depolamak için excel dosyalarını kullanmak istiyorum. Benim sorunum, mevcut bir excel dosyasına sayfa ekleyememem. Burada, bu soruna ulaşmak için çalışabileceğiniz örnek bir kod öneriyorum.
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()
Bu kod, iki DataFrame'i sırasıyla "x1" ve "x2" adlı iki sayfaya kaydeder. İki yeni DataFrame oluşturursam ve aynı kodu iki yeni sayfa, "x3" ve "x4" eklemek için kullanmaya çalışırsam, orijinal veriler kaybolur.
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()
Dört yapraklı bir excel dosyası istiyorum: 'x1', 'x2', 'x3', 'x4'. "Xlsxwriter" ın tek "motor" olmadığını biliyorum, "openpyxl" var. Ayrıca bu konu hakkında yazan başka insanlar olduğunu da gördüm, ancak yine de bunu nasıl yapacağımı anlayamıyorum.
İşte bu bağlantıdan alınan bir kod
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()
İşe yaradığını söylüyorlar ama nasıl olduğunu anlamak zor. Bu bağlamda "ws.title", "ws" ve "dict" nedir anlamıyorum.
"X1" ve "x2" yi kaydetmenin, ardından dosyayı kapatmanın, yeniden açmanın ve "x3" ve "x4" eklemenin en iyi yolu hangisidir?