วิธีทำให้ multiindex แบนใน pandas (พร้อมตัวอย่าง)


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อทำให้ MultiIndex แบนราบในแพนด้า:

 #flatten all levels of MultiIndex
df. reset_index (inplace= True )

#flatten specific levels of MultiIndex
df. reset_index (inplace= True , level = [' level_name '])

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่างที่ 1: ทำให้ MultiIndex ทุกระดับใน Pandas เรียบขึ้น

สมมติว่าเรามีแพนด้า MultiIndex DataFrame ดังต่อไปนี้:

 import pandas as pd

#createDataFrame
index_names = pd. MultiIndex . from_tuples ([('Level1','Lev1', 'L1'),
                                       ('Level2','Lev2', 'L2'),
                                       ('Level3','Lev3', 'L3'),
                                       ('Level4','Lev4', 'L4')],
                                       names=['Full','Partial', 'ID'])

data = {'Store': ['A','B','C','D'],
        'Sales': [12, 44, 29, 35]}

df = pd. DataFrame (data, columns = [' Store ',' Sales '], index=index_names)

#view DataFrame
df

			Store Sales
Full Partial ID		
Level1 Lev1 L1 A 17
Level2 Lev2 L2 B 22
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำให้ MultiIndex แต่ละระดับเรียบลงในคอลัมน์ของ DataFrame:

 #flatten every level of MultiIndex 
df. reset_index (inplace= True )

#view updated DataFrame
df

        Full Partial ID Store Sales
0 Level1 Lev1 L1 A 12
1 Level2 Lev2 L2 B 44
2 Level3 Lev3 L3 C 29
3 Level4 Lev4 L4 D 35

โปรดทราบว่าตอนนี้ MultiIndex แต่ละระดับจะเป็นคอลัมน์ใน DataFrame

ตัวอย่างที่ 2: ทำให้ MultiIndex ระดับเฉพาะใน Pandas เรียบลง

สมมติว่าเรามี DataFrame แพนด้าเดียวกันกับตัวอย่างก่อนหน้านี้:

 #view DataFrame
df

Store Sales
Full Partial ID		
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

รหัสต่อไปนี้แสดงวิธีการทำให้ MultiIndex ระดับใดระดับหนึ่งเรียบลง:

 #flatten 'ID' level only
df. reset_index (inplace= True ,level=[' ID '])

#view updated DataFrame
df

		ID Store Sales
Full Partial			
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

และโค้ดต่อไปนี้แสดงวิธีการทำให้ MultiIndex หลายระดับราบเรียบ:

 #flatten 'ID' level only
df. reset_index (inplace= True ,level=[' Partial ',' ID '])

#view updated DataFrame
df

	Partial ID Store Sales
Full				
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการใช้งานฟังก์ชันทั่วไปอื่น ๆ ในแพนด้า:

วิธีแปลงดัชนีเป็นคอลัมน์ใน Pandas
วิธีเปลี่ยนชื่อดัชนีใน Pandas
วิธีการตั้งค่าคอลัมน์เป็นดัชนีใน Pandas

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

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