วิธีซ้อน 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

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

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