วิธีซ้อน pandas dataframes หลายอัน
บ่อยครั้งที่คุณอาจต้องการซ้อน DataFrames แพนด้าสองตัวขึ้นไป โชคดีที่ทำได้ง่ายโดยใช้ฟังก์ชัน pandas concat()
บทช่วยสอนนี้แสดงตัวอย่างวิธีการทำเช่นนี้หลายประการ
ตัวอย่างที่ 1: ซ้อน Pandas DataFrames สองตัว
รหัสต่อไปนี้แสดงวิธีการ “ซ้อน” DataFrame แพนด้าสองตัวที่ซ้อนกันและสร้าง DataFrame:
import pandas as pd #create two DataFrames df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}) #"stack" the two DataFrames together df3 = pd. concat ([df1,df2], ignore_index= True ) #view resulting DataFrame df3 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
ตัวอย่างที่ 2: ซ้อน Pandas DataFrames สามตัว
รหัสที่คล้ายกันสามารถใช้เพื่อซ้อน DataFrames แพนด้าสามตัวซ้อนทับกันเพื่อสร้าง DataFrame:
import pandas as pd #create three DataFrames df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}) df3 = pd.DataFrame({'player': ['K', 'L', 'M', 'N', 'O'], 'points':[9, 5, 5, 13, 17]}) #"stack" the two DataFrames together df4 = pd. concat ([df1,df2, df3], ignore_index= True ) #view resulting DataFrame df4 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
ความสำคัญของการละเว้น_ดัชนี
โปรดทราบว่าในตัวอย่างก่อนหน้านี้ เราใช้ ign_index=True
ซึ่งจะบอกให้แพนด้าละเว้นหมายเลขดัชนีในแต่ละ DataFrame และสร้างดัชนีใหม่ตั้งแต่ 0 ถึง n-1 สำหรับ DataFrame ใหม่
ตัวอย่างเช่น พิจารณาว่าจะเกิดอะไรขึ้นเมื่อเราไม่ใช้ Continue_index=True เมื่อซ้อน DataFrames สองอันต่อไปนี้:
import pandas as pd #create two DataFrames with indices df1 = pd.DataFrame({'player': ['A', 'B', 'C', 'D', 'E'], 'points':[12, 5, 13, 17, 27]}, index=[0, 1, 2, 3, 4]) df2 = pd.DataFrame({'player': ['F', 'G', 'H', 'I', 'J'], 'points':[24, 26, 27, 27, 12]}, index=[2, 4, 5, 6, 9]) #stack the two DataFrames together df3 = pd. concat ([df1,df2]) #view resulting DataFrame df3 player points 0 to 12 1 B 5 2 C 13 3 D 17 4 E 27 2 F 24 4G 26 5:27 a.m. 6 I 27 9 D 12
DataFrame ที่เป็นผลลัพธ์จะคงค่าดัชนีดั้งเดิมไว้จาก DataFrames ทั้งสอง
ดังนั้นโดยทั่วไปคุณควรใช้ ign_index=True เมื่อซ้อน DataFrames สองอันเข้าด้วยกัน เว้นแต่คุณจะมีเหตุผลเฉพาะที่จะเก็บค่าดัชนีดั้งเดิมไว้
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่น ๆ ใน Pandas:
วิธีเพิ่มคอลัมน์ว่างให้กับ Pandas DataFrame
วิธีแทรกคอลัมน์ลงใน Pandas DataFrame
วิธีส่งออก Pandas DataFrame ไปยัง Excel