Tôi muốn sử dụng các tệp excel để lưu trữ dữ liệu được xây dựng bằng python. Vấn đề của tôi là tôi không thể thêm trang tính vào tệp excel hiện có. Ở đây tôi đề nghị một mẫu mã để làm việc với để đạt được vấn đề nàyLàm thế nào để lưu một trang tính mới trong một tệp excel hiện có, sử dụng Pandas?
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()
Mã này tiết kiệm hai DataFrames đến hai tờ, có tên là "x1" và "x2" tương ứng. Nếu tôi tạo hai DataFrames mới và cố gắng sử dụng cùng một mã để thêm hai trang tính mới, 'x3' và 'x4', dữ liệu gốc bị mất.
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()
Tôi muốn tệp excel có bốn trang tính: 'x1', 'x2', 'x3', 'x4'. Tôi biết rằng 'xlsxwriter' không phải là "động cơ" duy nhất, có 'openpyxl'. Tôi cũng thấy đã có những người khác đã viết về vấn đề này, nhưng tôi vẫn không thể hiểu làm thế nào để làm điều đó.
Dưới đây là một mã lấy từ này link
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()
Họ nói rằng nó hoạt động, nhưng thật khó để tìm ra cách. Tôi không hiểu "ws.title", "ws" và "dict" là gì trong ngữ cảnh này.
Cách tốt nhất để lưu "x1" và "x2", sau đó đóng tệp, mở lại và thêm "x3" và "x4"?
Sẽ rất hữu ích nếu bạn có thể thêm nhiều ví dụ "Pandas" tương tự như [this] (http://xlsxwriter.readthedocs.io/working_with_pandas.html) – MaxU
Tôi không làm nhiều việc với Pandas bản thân tôi nên tôi không thể cung cấp nhiều ví dụ nhưng sẽ hoan nghênh các cải tiến đối với tài liệu. –