Loc vs Iloc Pada Pandas
Ada kalanya kita hanya ingin menggunakan data pada lokasi tertentu saja dalam sebuah dataframe. Misal dari keseluruhan data, kita hanya ingin mengambil data pada kolom tertentu dan baris tertentu saja. Maka loc dan iloc dapat menjadi solusinya.
Loc adalah kependekan dari location, dan Iloc adalah kependekan dari index location. Keduanya adalah method untuk menyeleksi konten didalam sebuah pandas dataframe berdasarkan lokasinya. Biar lebih jelas, coba dulu buat dataframe seperti berikut:
import pandas as pd
arr = [
['Bukit Duri',150,100,220,'aman'],
['Katulampa',150,220,180,'siaga'],
['Beji',150,200,130,'siaga'],
['Bukit Duri',190,100,220,'siaga'],
['Katulampa',190,210,150,'aman'],
['Beji',190,100,180,'aman'],
['Bukit Duri',120,130,250,'aman'],
['Katulampa',120,210,200,'siaga'],
['Beji',120,100,300,'siaga'],
]
df = pd.DataFrame(arr)
df.columns = ['site','curah_hujan','debit_air','tinggi_muka_air','status']
df
site | curah_hujan | debit_air | tinggi_muka_air | status | |
0 | Bukit Duri | 150 | 100 | 220 | aman |
1 | Katulampa | 150 | 220 | 180 | siaga |
2 | Beji | 150 | 200 | 130 | siaga |
3 | Bukit Duri | 190 | 100 | 220 | siaga |
4 | Katulampa | 190 | 210 | 150 | aman |
5 | Beji | 190 | 100 | 180 | aman |
6 | Bukit Duri | 120 | 130 | 250 | aman |
7 | Katulampa | 120 | 210 | 200 | siaga |
8 | Beji | 120 | 100 | 300 | siaga |
Sekarang kita akan coba mengambil data yang dibatasi pada garis merah saja, yaitu dari mulai kolom 'site' hingga kolom 'tinggi_muka_air' saja dan pada baris index ke-2 sampai baris index ke-4 saja. So, kita akan mencobanya menggunakan Loc dan Iloc.
Loc
Loc adalah kependekan dari location. Method ini digunakan untuk menyeleksi area dalam sebuah dataframe berdasarkan lokasinya. Untuk menggunakan method loc, kita tinggal memanggil method loc() yang diisi dengan lokasi data yang hendak kita ambil. Formatnya seperti ini:
df.loc['baris awal':'baris akhir','kolom awal':'kolom akhir']
Nah, karena kita ingin mengambil data dari kolom 'site' ke kolom 'tinggi_muka_air' saja dan dari baris index ke-2 sampai baris index ke-4 saja, maka kita bisa melakukannya seperti ini:
df.loc[2:4,'site':'tinggi_muka_air']
site | curah_hujan | debit_air | tinggi_muka_air | |
2 | Beji | 150 | 200 | 130 |
3 | Bukit Duri | 190 | 100 | 220 |
4 | Katulampa | 190 | 210 | 150 |
Yeay, sekarang kita sudah berhasil menyeleksi data menggunakan Loc.
Iloc
Iloc adalah kependekan dari index location. Method ini menyeleksi area dalam sebuah pandas dataframe berdasarkan index lokasinya (seperti pada list & array). Berbeda dengan Loc yang berfokus pada nama lokasi (nama kolom dan nama baris), Iloc berfokus pada nomor index-nya. Formatnya seperti ini:
df.iloc['index baris awal':'index baris setelah akhir',
'indeks kolom awal':'index kolom setelah akhir']
Note:
Menentukan posisi data menggunakan iloc sama dengan menentukan posisi data dalam array. Jadi dia dimulai dari 0 hingga indeks sebelum terakhir. Misalkan kita ingin mengambil data pertama hingga data ke-4 dari sebuah array yang bernama 'arr', maka kita harus menuliskannya hingga data ke-5. Karena data ke-5 adalah satu data setelah data terakhir, yaitu data ke-4. Kita bisa menuliskannya seperti ini:arr[0:5]. Dan dia akan dikembalikan dalam bentuk data dari indeks pertama hingga indeks ke-4.
Untuk lebih memahaminya, kalian bisa baca dulu artikel dibawah ini:
Baja Juga: Struktur Data Pada List & Array Python disini
Pada dataframe diatas, kolom 'site' adalah kolom pertama, artinya dia memiliki indeks '0'. Sementara kolom 'tinggi_muka_air' adalah kolom ke-4, artinya dia memiliki indeks '3'. Sementara baris karena sudah berwujud index, maka index nya sama dengan nama barisnya.
So, kalau kita ingin mengambil data dari kolom 'site' hingga kolom 'tinggi_muka_air' dan dari baris ke-2 hingga baris ke-4, kita bisa melakukannya dengan cara seperti ini:
df.iloc[2:5,0:4]
site | curah_hujan | debit_air | tinggi_muka_air | |
2 | Beji | 150 | 200 | 130 |
3 | Bukit Duri | 190 | 100 | 220 |
4 | Katulampa | 190 | 210 | 150 |
Yeay, sekarang kita sudah berhasil menyeleksi data dengan menggunakan Iloc.
Baca Juga:
Artikel yang mungkin relate buat kamu
Uji data hilang atau yang lebih keren dikenal sebagai missing value analysis adalah bagian dari tahap data cleaning yang bertujuan untuk menghapus data hilang atau ...
Pandas (Python for Data Science) adalah sebuah library atau package pada bahasa pemrograman Python yang memungkinkan kita untuk membuat, mengolah, dan mengelola data dalam bentuk ...