Cara meratakan multiindex di pandas (dengan contoh)


Anda dapat menggunakan sintaks dasar berikut untuk meratakan MultiIndex di panda:

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

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

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: Ratakan semua level MultiIndex di Pandas

Misalkan kita memiliki MultiIndex DataFrame panda berikut:

 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

Kita dapat menggunakan sintaks berikut untuk meratakan setiap level MultiIndex ke dalam kolom 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

Perhatikan bahwa setiap level MultiIndex sekarang menjadi kolom di DataFrame.

Contoh 2: Meratakan level MultiIndex tertentu di Pandas

Anggaplah kita memiliki pandas DataFrame yang sama seperti contoh sebelumnya:

 #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

Kode berikut menunjukkan cara meratakan satu level MultiIndex tertentu:

 #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

Dan kode berikut menunjukkan cara meratakan beberapa level MultiIndex tertentu:

 #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

Sumber daya tambahan

Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di panda:

Bagaimana cara mengubah indeks menjadi kolom di Pandas
Cara mengganti nama indeks di Pandas
Cara mengatur kolom sebagai indeks di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *