Apa itu Indeks Multi-Level di Pandas
Indeks multi-level, juga dikenal sebagai indeks hierarkis, adalah cara mengorganisir data di Pandas dengan beberapa level indeks. Ini berguna untuk merepresentasikan set data kompleks dengan beberapa dimensi, seperti data keuangan atau data ilmiah. Dalam Pandas, indeks multi-level terdiri dari beberapa level indeks, di mana setiap level mewakili aspek data yang berbeda.
Membuat Indeks Multi-Level di Pandas
Untuk membuat indeks multi-level di Pandas, kita dapat menggunakan fungsi set_index()
. Fungsi set_index()
memungkinkan kita untuk menentukan satu atau lebih kolom yang digunakan sebagai indeks, dan kita dapat melewatkan beberapa kolom untuk membuat indeks multi-level. Contohnya:
import pandas as pd
data = {'tahun': [2019, 2019, 2020, 2020],
'kuartal': [1, 2, 1, 2],
'pendapatan': [100, 200, 150, 250]}
df = pd.DataFrame(data)
df = df.set_index(['tahun', 'kuartal'])
print(df)
revenue
year quarter
2019 1 100
2 200
2020 1 150
2 250
Pada contoh ini, kita membuat DataFrame dengan indeks multi-level yang terdiri dari kolom tahun
dan kuartal
.
Mengindeks dengan Indeks Multi-Level di Pandas
Setelah kita membuat indeks multi-level di Pandas, kita dapat menggunakannya untuk memilih dan memanipulasi data. Kita dapat menggunakan fungsi loc[]
dan iloc[]
untuk memilih data berdasarkan level indeks. Contohnya:
# Memilih data untuk tahun 2019, kuartal 1
print(df.loc[(2019, 1)])
# Memilih data untuk semua kuartal di tahun 2020
print(df.loc[2020])
# Memilih data untuk semua tahun dan kuartal
print(df.loc[:])
revenue 100
Name: (2019, 1), dtype: int64
revenue
quarter
1 150
2 250
revenue
year quarter
2019 1 100
2 200
2020 1 150
2 250
Kita juga dapat menggunakan fungsi xs()
untuk memilih data pada level tertentu dari indeks. Contohnya:
# Memilih data untuk kuartal 1 untuk semua tahun
print(df.xs(1, level='kuartal'))
revenue
year
2019 100
2020 150
Mengelompokkan Data dengan Indeks Multi-Level di Pandas
Fitur lain yang berguna dari indeks multi-level di Pandas adalah kemampuan untuk mengelompokkan data pada level indeks yang berbeda. Kita dapat menggunakan fungsi groupby()
untuk mengelompokkan data berdasarkan satu atau lebih level indeks dan kemudian menerapkan fungsi agregasi. Contohnya:
# Menghitung total pendapatan untuk setiap tahun
print(df.groupby(level='tahun')['pendapatan'].sum())
# Menghitung rata-rata pendapatan untuk setiap kuartal
print(df.groupby(level='kuartal')['pendapatan'].mean())
year
2019 300
2020 400
Name: revenue, dtype: int64
quarter
1 125
2 225
Name: revenue, dtype: int64