Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python ส่งออก DataFrame เป็น Excel หลายแผ่น (sheets)

สมมติว่าคุณมี DataFrame และต้องการส่งออกเป็นไฟล์ Excel ที่มีหลายแผ่นงาน (sheets)

วิธีแก้ปัญหา

  1. ติดตั้ง xlsxwriter (pip install xlsxwriter)
  2. สร้าง DataFrame
  3. ใช้ pd.ExcelWriter() พร้อม engine='xlsxwriter'
  4. เขียน DataFrame หลายครั้ง กำหนด sheet_name ต่างกัน
  5. บันทึกด้วย excel_writer.save() หรือ excel_writer.close()

ตัวอย่างโค้ด

import pandas as pd
import xlsxwriter

df = pd.DataFrame({'Fruits': ["Apple", "Orange", "Mango", "Kiwi"],
                   'City': ["Shimla", "Sydney", "Lucknow", "Wellington"]})

print("DataFrame ต้นฉบับ:\n", df)

# สร้าง ExcelWriter
excel_writer = pd.ExcelWriter('pandas_df.xlsx', engine='xlsxwriter')

# เขียนไปหลาย sheets
df.to_excel(excel_writer, sheet_name='first_sheet')
df.to_excel(excel_writer, sheet_name='second_sheet')
df.to_excel(excel_writer, sheet_name='third_sheet')

# บันทึกไฟล์
excel_writer.save()
print("\nสร้างไฟล์ pandas_df.xlsx พร้อม 3 sheets เรียบร้อย")

ผลลัพธ์

ได้ไฟล์ Excel ที่มี 3 แผ่นงาน: first_sheet, second_sheet, third_sheet ทุกแผ่นมีข้อมูลเหมือนกัน

คำอธิบายเพิ่มเติม:

  • ExcelWriter เป็น context manager ใช้ with pd.ExcelWriter(...) as writer: ได้
  • engine อื่นๆ: 'openpyxl' (สำหรับ .xlsx), 'xlwt' (สำหรับ .xls เก่า)
  • สามารถเขียน DataFrame ต่างกันไปแผ่นละแผ่นได้
  • พารามิเตอร์ index=False ใน to_excel() จะไม่เขียน index ลงไฟล์