Pandas DataFrame – Retrieve Row Menggunakan Index Position dengan Method iloc[]

Masih menggunakan data dari modul sebelumnya. Kita akan ulangi proses import dan load data dari awal.

import pandas as pd

df = pd.read_csv("jamesbond.csv")

Perbedaan iloc adalah mengakses row berdasarkan index position. Jadi index berupa angka.

Cara-cara yang dapat dilakukan pada loc, dapat dilakukan pada iloc. Berikut contoh penggunaan iloc.

df.iloc[4]
Film                 Casino Royale
Year                          1967
Actor                  David Niven
Director                Ken Hughes
Box Office                     315
Budget                          85
Bond Actor Salary              NaN
Name: 4, dtype: object

Sama seperti pada method loc, jika single row, akan dikembalikan berupa series.

df.iloc[[4, 7]]

Jika lebih dari 1 row, maka akan dikembalikan berupa dataframe.

Pada iloc juga kita bisa melakukan slicing.

df.iloc[4 : 7]

Perhatian, pada iloc, index terakhir (dalam hal ini index ke 7), tidak disertakan. Sementara untuk loc, jika menggunakan label indexing, index terakhir disertakan.

Berikut cara slicing yang valid.

#mengembalikan row dari index ke 4 sampai akhir dataframe.
df.iloc[4 :]

#mengembalikan row dari awal dataframe sampai index ke 4.
df.iloc[: 4]

Jika Anda memilki dataframe yang menggunakan Label sebagai index, perintah iloc tetap dapat digunakan.

Contoh, kita akan load kembali data jamesbond.csv dengan index menggunakan kolom film.

df = pd.read_csv("jamesbond.csv", index_col="Film")
df.sort_index(inplace=True)

df.iloc[:3]

Parameter kedua dari iloc adalah parameter untuk mengakses kolom. Contoh kita ingin mengakses film index ke 0 dengan kolom index 0, 1 dan 2.

df.iloc[0, [0, 1, 2]]
Year               1985
Actor       Roger Moore
Director      John Glen
Name: A View to a Kill, dtype: object

Untuk parameter row, kita bisa melakukan slicing, sementara untuk parameter kolom tidak bisa.

#ERROR
df.iloc[0, [0:2]]

#VALID, akan mengembalikan 2 row, dengan 3 kolom (Year, Actor dan Director).
df.iloc[0:2, [0, 1, 2]]
Sharing is caring:

Leave a Comment