Traffine I/O

Bahasa Indonesia

2022-11-11

Indeks dan Irisan dalam Pandas DataFrames

Pengenalan

Pandas adalah sebuah library yang kuat untuk analisis data dan manipulasi di Python. Salah satu fitur utama dari Pandas adalah indexing, yang memungkinkan pengguna untuk mengakses dan memanipulasi elemen tertentu dalam DataFrame. Ada berbagai teknik yang tersedia untuk indexing dalam Pandas, termasuk indexing berbasis label dengan .loc, indexing berbasis posisi dengan .iloc, indexing Boolean, dan indexing hierarki dengan MultiIndex.

Selain indexing, slicing juga merupakan teknik penting dalam Pandas yang memungkinkan Anda untuk mengekstrak sebagian dari DataFrame Anda dengan menentukan rentang baris atau kolom.

Dalam artikel ini, saya akan mengeksplorasi indexing dan slicing di Pandas DataFrame.

Indeks pada Pandas DataFrames

Indeks memungkinkan pengguna untuk mengakses dan memanipulasi elemen tertentu dalam DataFrame. Ada berbagai teknik yang tersedia untuk melakukan indeks pada Pandas, dan memahami metode-metode ini dapat membantu Anda mengoptimalkan potensi DataFrame.

Indeks Berbasis Label: .loc

Pandas menyediakan atribut .loc untuk indeks berbasis label. Metode ini memungkinkan Anda untuk mengakses baris dan kolom menggunakan labelnya (yaitu, nama indeks dan kolom). Syntaxnya adalah sebagai berikut:

df.loc[label_baris, label_kolom]

Di sini, df merepresentasikan DataFrame, label_baris merepresentasikan label indeks baris yang ingin Anda akses, dan label_kolom merepresentasikan label kolom. Anda juga dapat menggunakan teknik slicing dengan .loc untuk memilih beberapa baris atau kolom. Contohnya:

python
import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

# Select a single value
result = df.loc['row1', 'A']  # Output: 1

# Select a single row
result = df.loc['row1', :]  # Output: A    1
                             #         B    4
                             #         C    7

# Select multiple rows and columns
result = df.loc[['row1', 'row2'], ['A', 'C']]  # Output:       A  C
                                               #         row1  1  7
                                               #         row2  2  8

Indeks Berbasis Posisi: .iloc

Atribut .iloc digunakan untuk indeks berbasis posisi. Ini memungkinkan Anda untuk mengakses elemen dalam DataFrame menggunakan posisi indeks integer. Syntax untuk .iloc adalah:

df.iloc[posisi_baris, posisi_kolom]

Di sini, posisi_baris dan posisi_kolom merepresentasikan posisi indeks integer dari baris dan kolom yang ingin Anda akses. Sama seperti .loc, Anda dapat menggunakan teknik slicing dengan .iloc untuk memilih beberapa baris atau kolom:

python
# Select a single value
result = df.iloc[0, 0]  # Output: 1

# Select a single row
result = df.iloc[0, :]  # Output: A    1
                         #         B    4
                         #         C    7

# Select multiple rows and columns
result = df.iloc[[0, 1], [0, 2]]  # Output:       A  C
                                  #         row1  1  7
                                  #         row2  2  8

Indeks dengan Array Boolean

Array Boolean dapat digunakan untuk indeks dalam memfilter baris atau kolom berdasarkan kondisi tertentu. Metode ini juga dikenal sebagai indeks Boolean atau masking. Syntaxnya adalah:

df[array_boolean]

Di sini, array_boolean adalah array nilai True dan False yang sesuai dengan baris atau kolom yang ingin Anda akses. Contohnya:

python
# Select rows where column 'A' is greater than 1
mask = df['A'] > 1
result = df[mask]  # Output:       A  B  C
                   #         row2  2  5  8
                   #         row3  3  6  9

Indeks Hierarkis: MultiIndex

Pandas mendukung indeks hierarkis, yang memungkinkan Anda untuk memiliki beberapa level label indeks untuk baris dan kolom. Objek MultiIndex dapat digunakan untuk membuat dan memanipulasi indeks hierarkis. Syntax untuk membuat DataFrame MultiIndex adalah:

df_multi = pd.DataFrame(data, index=pd.MultiIndex.from_tuples(index_tuples), columns=label_kolom)

Di sini, index_tuples merepresentasikan tuple yang berisi label indeks hierarkis, dan label_kolom merepresentasikan label kolom. Contohnya:

python
import pandas as pd

data = [[1, 2], [3, 4], [5, 6], [7, 8]]
index_tuples = [('A', 'x'), ('A', 'y'), ('B', 'x'), ('B', 'y')]
column_labels = ['col1', 'col2']

df_multi = pd.DataFrame(data, index=pd.MultiIndex.from_tuples(index_tuples), columns=column_labels)

# Output:
#      col1  col2
# A x     1     2
#   y     3     4
# B x     5     6
#   y     7     8

Untuk mengakses data dalam DataFrame MultiIndex, Anda dapat menggunakan .loc dengan beberapa label:

python
# Select a single value
result = df_multi.loc[('A', 'x'), 'col1']  # Output: 1

# Select a single row
result = df_multi.loc[('A', 'x'), :]  # Output: col1    1
                                      #         col2    2

# Select multiple rows and columns
result = df_multi.loc[(slice('A', 'B'), slice('x', 'y')), ['col1']]
# Output:
#      col1
# A x     1
#   y     3
# B x     5
#   y     7

Irisan pada Pandas DataFrames

Irisan adalah teknik yang memungkinkan Anda untuk mengekstrak sebagian dari DataFrame Anda dengan menentukan rentang baris atau kolom. Dalam bab ini, saya akan menjelajahi berbagai teknik iris dan aplikasinya.

Irisan Baris

Irisan baris memungkinkan Anda untuk memilih rentang baris yang kontinu dalam DataFrame berdasarkan label indeks atau posisi. Anda dapat menggunakan atribut .loc untuk irisan berbasis label atau atribut .iloc untuk iris berbasis posisi. Syntax untuk irisan baris adalah sebagai berikut:

python
# Label-based slicing
df.loc[start_label:end_label]

# Position-based slicing
df.iloc[start_position:end_position]

Kedua nilai awal dan akhir inklusif untuk iris berbasis label (.loc), sementara nilai akhirnya tidak termasuk untuk iris berbasis posisi (.iloc). Contohnya:

python
import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

# Label-based slicing
result = df.loc['row1':'row2']  # Output:       A  B  C
                                #         row1  1  4  7
                                #         row2  2  5  8

# Position-based slicing
result = df.iloc[0:2]  # Output:       A  B  C
                       #         row1  1  4  7
                       #         row2  2  5  8

Irisan Kolom

Irisan kolom memungkinkan Anda untuk memilih rentang kolom yang kontinu dalam DataFrame berdasarkan label atau posisi mereka. Anda dapat menggunakan atribut .loc untuk iris berbasis label atau atribut .iloc untuk iris berbasis posisi. Syntax untuk iris kolom adalah sebagai berikut:

python
# Label-based slicing
df.loc[:, start_label:end_label]

# Position-based slicing
df.iloc[:, start_position:end_position]

Sama seperti iris baris, nilai awal dan akhir inklusif untuk iris berbasis label (.loc) dan eksklusif untuk iris berbasis posisi (.iloc). Contohnya:

python
# Label-based slicing
result = df.loc[:, 'A':'B']  # Output:       A  B
                             #         row1  1  4
                             #         row2  2  5
                             #         row3  3  6

# Position-based slicing
result = df.iloc[:, 0:2]  # Output:       A  B
                          #         row1  1  4
                          #         row2  2  5
                          #         row3  3  6

Irisan Gabungan Baris dan Kolom

Dalam beberapa kasus, Anda mungkin ingin mengiris baik baris dan kolom secara bersamaan. Anda dapat mencapai ini dengan menggabungkan teknik iris baris dan kolom menggunakan atribut .loc atau .iloc. Contohnya:

python
# Label-based slicing
result = df.loc['row1':'row2', 'A':'B']  # Output:       A  B
                                         #         row1  1  4
                                         #         row2  2  5

# Position-based slicing
result = df.iloc[0:2, 0:2]  # Output:       A  B
                            #         row1  1  4
                            #         row2  2  5

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!