Cara memilih baris berdasarkan indeks di pandas dataframe
Seringkali Anda mungkin ingin memilih baris dalam pandas DataFrame berdasarkan nilai indeksnya.
Jika Anda ingin memilih baris berdasarkan pengindeksan bilangan bulat, Anda dapat menggunakan fungsi .iloc .
Jika Anda ingin memilih baris berdasarkan pengindeksan label, Anda dapat menggunakan fungsi .loc .
Tutorial ini memberikan contoh cara menggunakan masing-masing fungsi ini dalam praktik.
Contoh 1: Pilih baris berdasarkan pengindeksan bilangan bulat
Kode berikut menunjukkan cara membuat pandas DataFrame dan menggunakan .iloc untuk memilih baris dengan nilai indeks integer 4 :
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the 5th row of the DataFrame df. iloc [[4]] A B 12 0.963663 0.383442
Kita dapat menggunakan sintaks serupa untuk memilih beberapa baris:
#select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [[2, 3, 4]]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Atau kita dapat memilih semua baris dalam suatu rentang:
#select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]
A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
Contoh 2: Pilih baris berdasarkan pengindeksan label
Kode berikut menunjukkan cara membuat pandas DataFrame dan menggunakan .loc untuk memilih baris dengan label indeks 3 :
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #createDataFrame df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B ']) #view DataFrame df A B 0 0.548814 0.715189 3 0.602763 0.544883 6 0.423655 0.645894 9 0.437587 0.891773 12 0.963663 0.383442 15 0.791725 0.528895 #select the row with index label '3' df. loc [[3]] A B 3 0.602763 0.544883
Kita dapat menggunakan sintaks serupa untuk memilih beberapa baris dengan label indeks berbeda:
#select the rows with index labels '3', '6', and '9'
df. loc [[3, 6, 9]]
A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
Perbedaan antara .iloc dan .loc
Contoh di atas menggambarkan perbedaan halus antara .iloc dan .loc :
- .iloc memilih baris berdasarkan indeks bilangan bulat . Jadi, jika Anda ingin memilih baris ke-5 dari DataFrame, Anda akan menggunakan df.iloc[[4]] karena baris pertama berada di indeks 0, baris kedua berada di indeks 1, dan seterusnya.
- .loc memilih baris berdasarkan indeks berlabel . Jadi, jika ingin memilih baris dengan label indeks 5, langsung menggunakan df.loc[[5]].
Sumber daya tambahan
Cara mendapatkan nomor baris di Pandas DataFrame
Cara menghapus baris dengan nilai NaN di Pandas
Cara menghapus kolom indeks di Pandas