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 các tờ vào tệp Excel hiện có. Ở đây tôi đề xuất một mã mẫu để làm việc để đạt được vấn đề này
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 lưu hai khung dữ liệu vào hai tờ, được đặt 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 tờ mới, 'X3' và 'X4', dữ liệu gốc sẽ 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 một tệp Excel với bốn tờ: '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 đó.
Ở đây một mã được lấy từ liên kết này
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 làm thế nào. Tôi không hiểu "ws.title", "ws" và "dict" là gì trong bối cảnh này.
Đó là cách tốt nhất để lưu "x1" và "x2", sau đó đóng tệp, mở lại và thêm "x3" và "x4"?
Trang chủ & nbsp; & nbsp; Thêm tờ mới vào Excel bằng gấu trúc
Một khung dữ liệu có thể được thêm vào dưới dạng một tờ mới cho một bảng excel hiện có. Đối với hoạt động này, thư viện yêu cầu là openpyxl.openpyxl.
Bạn có thể cài đặt thư viện này bằng lệnh bên dưới trong Jupyter Notebook. Lệnh tương tự có thể được thực thi trong dấu nhắc lệnh mà không cần ký tự cảm thán!
# Cài đặt thư viện cho tương tác Excel bằng gấu trúc bằng cách sử dụng gấu trúc ! Cài đặt pip openpyxlpip install openpyxl |
Bạn có thể thêm dữ liệu từ nhiều khung dữ liệu, mỗi người trở thành một tờ.
Dưới đây, đoạn trích tải một tờ Excel có sẵn và thêm hai tờ nữa cho nó bằng hai khung dữ liệu khác nhau.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | Nhập Pandas ASPDpandas aspd Nhập ASNP NUMPYnumpy asnp Từ OpenPyxl Nhập tải_workbookopenpyxl import load_workbook # Xác định đường dẫn mà Excel cần được tạo # Phải có một tờ Excel có sẵn có thể được cập nhật FilePath = "/user/farukh/python ml ivy-may-2020/carpricesdata.xlsx"= "/Users/farukh/Python ML IVY-May-2020/CarPricesData.xlsx" # Tạo sổ làm việc ExcelWorkbook=load_workbook(FilePath)=load_workbook(FilePath) # Tạo ra động cơ nhà văn writer=pd.ExcelWriter(FilePath,engine='openpyxl')=pd.ExcelWriter(FilePath, engine='openpyxl') # Gán sổ làm việc cho công cụ nhà văn writer.book=ExcelWorkbook.book=ExcelWorkbook # Tạo khung dữ liệu đầu tiên DataSample1=[[10,'value1'],= [[10,'value1'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [20, 'value2'],[20,'value2'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [30, 'value3']]][30,'value3']] SimpleDataFrame1=pd.DataFrame(data=DataSample1,columns=['Col1','Col2'])=pd.DataFrame(data=DataSample1,columns=['Col1','Col2']) print(SimpleDataFrame1)(SimpleDataFrame1) # Tạo DataFrame thứ hai DataSample2=[[100,'A'],=[[100,'A'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [200, 'B'],[200,'B'], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [300, 'C']]][300,'C']] SimpleDataFrame2=pd.DataFrame(data=DataSample2,columns=['colA','colB'])=pd.DataFrame(data=DataSample2,columns=['colA','colB']) print(SimpleDataFrame2)(SimpleDataFrame2) # Thêm các khung dữ liệu vào excel dưới dạng trang tính mới SimpleDataFrame1.to_excel(writer,sheet_name='Data1').to_excel(writer,sheet_name='Data1') SimpleDataFrame2.to_excel(writer,sheet_name='Data2').to_excel(writer,sheet_name= 'Data2') writer.save().save() writer.close().close() |
Nhà khoa học dữ liệu chính
Farukh là một nhà đổi mới trong việc giải quyết các vấn đề công nghiệp bằng cách sử dụng trí tuệ nhân tạo. Chuyên môn của ông được hỗ trợ với 10 năm kinh nghiệm trong ngành. Là một nhà khoa học dữ liệu cao cấp, anh ta chịu trách nhiệm thiết kế giải pháp AI/ML để cung cấp mức tăng tối đa cho khách hàng. Là một nhà lãnh đạo tư tưởng, trọng tâm của ông là giải quyết các vấn đề kinh doanh chính của ngành công nghiệp CPG. Ông đã làm việc trên các lĩnh vực khác nhau như viễn thông, bảo hiểm và hậu cần. Ông đã làm việc với các nhà lãnh đạo công nghệ toàn cầu bao gồm Infosys, IBM và các hệ thống liên tục. Niềm đam mê của anh ấy để dạy truyền cảm hứng cho anh ấy để tạo ra trang web này!