Pandas: cara memfilter berdasarkan nilai indeks


Anda dapat menggunakan sintaks dasar berikut untuk memfilter baris dalam pandas DataFrame berdasarkan nilai indeks:

 df_filtered = df[df. index . isin (some_list)]

Ini akan memfilter panda DataFrame untuk hanya menyertakan baris yang nilai indeksnya terkandung dalam some_list .

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: Filter berdasarkan nilai indeks numerik

Misalkan kita memiliki panda DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

   points assists rebounds
0 18 5 11
1 22 7 8
2 19 7 10
3 14 9 6
4 14 12 6
5 11 9 5
6 20 9 9
7 28 4 12

Perhatikan bahwa nilai indeks bersifat numerik.

Misalkan kita ingin memfilter baris yang nilai indeksnya 1, 5, 6, atau 7.

Kita dapat menggunakan sintaks berikut untuk melakukan ini:

 #define list of index values
some_list = [1, 5, 6, 7]

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
1 22 7 8
5 11 9 5
6 20 9 9
7 28 4 12

Perhatikan bahwa satu-satunya baris yang dikembalikan adalah baris dengan nilai indeks 1, 5, 6, atau 7.

Contoh 2: Filter berdasarkan nilai indeks non-numerik

Misalkan kita memiliki panda DataFrame berikut:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
print (df)

   points assists rebounds
A 18 5 11
B 22 7 8
C 19 7 10
D 14 9 6
E 14 12 6
F 11 9 5
G 20 9 9
H 28 4 12

Perhatikan bahwa nilai indeks adalah nilai karakter.

Misalkan kita ingin memfilter baris yang nilai indeksnya sama dengan A, C, F, atau G.

Kita dapat menggunakan sintaks berikut untuk melakukan ini:

 #define list of index values
some_list = ['A', 'C', 'F', 'G']

#filter for rows in list
df_filtered = df[df. index . isin (some_list)]

#view filtered DataFrame
print (df_filtered)

   points assists rebounds
A 18 5 11
C 19 7 10
F 11 9 5
G 20 9 9

Perhatikan bahwa satu-satunya baris yang dikembalikan adalah baris dengan nilai indeks A, C, F, atau G.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Cara menyisipkan baris ke dalam Pandas DataFrame
Cara menghapus baris pertama di Pandas DataFrame
Cara menghapus baris di Pandas DataFrame berdasarkan kondisi

Tambahkan komentar

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