วิธีรวมแผ่นงาน excel หลายแผ่นใน pandas
บ่อยครั้งที่คุณอาจต้องการนำเข้าและรวมแผ่นงาน Excel หลายแผ่นไว้ใน DataFrame แพนด้าตัวเดียว
ตัวอย่างเช่น สมมติว่าคุณมีสมุดงาน Excel ต่อไปนี้ชื่อ data.xlsx โดยมีแผ่นงานที่แตกต่างกันสามแผ่นซึ่งทั้งหมดประกอบด้วยข้อมูลผู้เล่นบาสเกตบอลสองคอลัมน์:
เราสามารถนำเข้าและรวมแต่ละชีตเป็น DataFrame ของ pandas ได้อย่างง่ายดายโดยใช้ฟังก์ชัน pandas concat() และ read_excel() แต่ก่อนอื่นเราต้องแน่ใจว่าได้ติดตั้ง xlrd แล้ว:
pip install xlrd
เมื่อติดตั้งแล้ว เราสามารถใช้โค้ดต่อไปนี้เพื่อนำเข้าและรวมชีตทั้งสามนี้ไว้ใน Pandas DataFrame เดียว:
#load pandas library import pandas as pd #import and combine the three sheets into one pandas DataFrame df = pd. concat (pd. read_excel ('data.xlsx', sheet_name= None ), ignore_index= True ) #view DataFrame df player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 5 F 24 6 G 26 7:27 a.m. 8 I 27 9 D 12 10K 9 11 L 5 12 M 5 13 N 13 14 O 17
รหัสนี้ทำงานอย่างไร
มีเพียงสองส่วนในการทำความเข้าใจว่าโค้ดบรรทัดเดียวนี้สามารถนำเข้าและรวมแผ่นงาน Excel หลายแผ่นได้อย่างไร:
1. อ่านเอกสารทั้งหมด
p.d. read_excel ('data.xlsx', sheet_name= None )
โค้ดชิ้นนี้อ่านได้ในสมุดงาน Excel ทุกแผ่น ตามค่าเริ่มต้น ฟังก์ชัน read_excel() จะอ่านเฉพาะแผ่นงานแรก แต่การระบุ sheet_name=None ทำให้เราสามารถอ่านแต่ละแผ่นงานในสมุดงาน Excel ได้
2. เชื่อมต่อแผ่นงานทั้งหมด
p.d. concat ( DataFrames to concatenate , ignore_index= True )
โค้ดชิ้นนี้เพียงเชื่อม DataFrames ทั้งหมดจากแผ่นงาน Excel แต่ละแผ่นเข้ากับ DataFrame แพนด้าตัวเดียว โดยการระบุ ign_index=True เราจะบอกแพนด้าว่าชื่อลีฟแต่ละชื่อไม่สำคัญ
โปรดทราบว่าโค้ดนี้จะใช้งานได้ก็ต่อเมื่อแผ่นงาน Excel แต่ละแผ่นมีรูปแบบเหมือนกัน ในตัวอย่างนี้ แต่ละชีตมีข้อมูลสองคอลัมน์และแต่ละคอลัมน์มีชื่อเหมือนกัน ซึ่งเป็นเหตุผลว่าทำไมโค้ดบรรทัดเดียวนี้จึงทำงานได้อย่างง่ายดายเพื่อรวมแต่ละชีต Excel ให้เป็น DataFrame แพนด้าตัวเดียว
แหล่งข้อมูลเพิ่มเติม
สุดยอดคู่มือ: วิธีอ่านไฟล์ Excel ด้วย Pandas
วิธีเขียน Pandas DataFrames บนแผ่นงาน Excel หลายแผ่น