วิธีรวมแผ่นงาน 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 หลายแผ่น

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *