Ringkasnya: Untuk DataFrame, .shape mengembalikan tuple berisi jumlah baris dan kolom. Untuk Series, atribut ini mengembalikan jumlah baris. Gunakan .shape untuk cepat memeriksa ukuran dataset Anda atau memverifikasi hasil penyaringan dan seleksi. Ingat juga bahwa .shape adalah atribut, jadi Anda tidak perlu tanda kurung untuk mengaksesnya.
Untuk menjalankan sendiri seluruh contoh kode dalam tutorial ini dengan mudah, Anda dapat membuat workbook DataLabgratis yang telah terpasang Python dan memuat semua contoh kode.
Jika Anda memiliki sebuah DataFrame dan ingin mengakses atau memilih beberapa baris/kolom tertentu dari DataFrame tersebut, Anda dapat menggunakan tanda kurung siku atau metode lanjutan seperti loc dan iloc.
Memilih Kolom Menggunakan Tanda Kurung Siku
Sekarang, misalkan Anda ingin memilih kolom country dari DataFrame brics. Untuk melakukannya, ketik brics lalu label kolom di dalam tanda kurung siku.
Memilih satu kolom
country capital area population
BR Brazil Brasilia 8.516 200.40
RU Russia Moscow 17.100 143.50
IN India New Dehli 3.286 1252.00
CH China Beijing 9.597 1357.00
SA South Africa Pretoria 1.221 52.98
brics["country"]
BR Brazil
RU Russia
IN India
CH China
SA South Africa
Name: country, dtype: object
Memeriksa tipe objek
Mari kita periksa tipe objek yang dikembalikan dengan fungsi type().
type(brics["country"])
pandas.core.series.Series
Seperti terlihat dari keluaran di atas, kita sedang berurusan dengan series pandas! Series dapat dianggap sebagai array satu dimensi yang dapat diberi label seperti halnya DataFrame.
Jika Anda ingin memilih data dan tetap menyimpannya dalam sebuah DataFrame, Anda perlu menggunakan tanda kurung siku ganda:
brics[["country"]]
BR Brazil
RU Russia
IN India
CH China
SA South Africa
Jika kita periksa tipe keluarannya, itu adalah DataFrame! Namun hanya dengan satu kolom.
type(brics[["country"]])
pandas.core.frame.DataFrame
Memahami atribut .shape
Sekarang mari lihat atribut .shape. Atribut .shape di pandas memberikan cara cepat untuk melihat struktur DataFrame atau Series. Atribut ini mengembalikan tuple yang menunjukkan jumlah baris dan kolom pada DataFrame atau hanya jumlah baris pada Series.
Contoh: Menggunakan .shape pada DataFrame
Mari lihat lagi DataFrame kita bernama brics:
import pandas as pd
# Sample DataFrame
data = {
"country": ["Brazil", "Russia", "India", "China", "South Africa"],
"capital": ["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"],
"area": [8.516, 17.1, 3.286, 9.597, 1.221],
"population": [200.4, 143.5, 1252, 1357, 52.98],
}
brics = pd.DataFrame(data, index=["BR", "RU", "IN", "CH", "SA"])
# Check the shape
print(brics.shape)
Keluaran:
(5, 4)
Ini memberi tahu kita bahwa DataFrame brics memiliki 5 baris dan 4 kolom.
Contoh: Menggunakan .shape pada Series
Saat memilih satu kolom dari DataFrame, seperti kolom country, hasilnya adalah Series. Begini perilaku .shape dalam kasus tersebut:
country_series = brics["country"]
print(country_series.shape)
Keluaran:
(5,)
Di sini, Series memiliki 5 baris dan tidak ada kolom karena Series bersifat satu dimensi.
Memilih beberapa kolom
Anda dapat memperluas pemanggilan ini untuk memilih dua kolom. Mari coba memilih country dan capital.
brics[["country", "capital"]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Dehli
CH China Beijing
SA South Africa Pretoria
Jika Anda perhatikan baik-baik, sebenarnya Anda memasukkan sebuah list berisi label kolom ke dalam satu set tanda kurung siku lainnya dan menghasilkan sub-DataFrame yang hanya berisi kolom country dan capital.
Memilih Baris Menggunakan Tanda Kurung Siku
Tanda kurung siku tidak hanya untuk memilih kolom. Anda juga dapat menggunakannya untuk mengambil baris, atau observasi, dari sebuah DataFrame.
Contoh
Anda hanya dapat memilih baris menggunakan tanda kurung siku jika Anda menentukan slice, seperti 0:4. Selain itu, di sini Anda menggunakan indeks bilangan bulat dari baris, bukan label baris!
Untuk mendapatkan baris kedua, ketiga, dan keempat dari DataFrame brics, kita gunakan slice 1 sampai 4. Ingat bahwa akhir slice bersifat eksklusif, dan indeks dimulai dari nol.
brics[1:4]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Delhi 3.286 1252.00
CH China Beijing 9.597 1357.00
Tanda kurung siku ini berfungsi, tetapi hanya menawarkan fungsionalitas terbatas. Idealnya, kita menginginkan sesuatu yang mirip dengan array 2D Numpy, di mana Anda juga menggunakan tanda kurung siku. Indeks, atau slice, sebelum koma mengacu pada baris, dan slice setelah koma mengacu pada kolom.
Contoh array 2D Numpy:
my_array[rows, columns]
Jika Anda ingin melakukan hal serupa dengan pandas, Anda perlu melihat penggunaan fungsi loc dan iloc.
-
loc: berbasis label -
iloc: berbasis posisi bilangan bulat
Fungsi loc
loc adalah teknik untuk memilih bagian data berdasarkan label. Mari lihat DataFrame brics dan ambil baris untuk Russia.
Untuk melakukannya, Anda akan menempatkan label yang diinginkan di dalam tanda kurung siku setelah loc.
Memilih baris
brics.loc["RU"]
country Russia
capital Moscow
area 17.1
population 143.5
Name: RU, dtype: object
Kita mendapatkan series pandas yang memuat seluruh informasi baris; namun kurang praktis karena ditampilkan pada baris terpisah. Untuk mendapatkan DataFrame, kita harus menaruh string RU dalam sepasang tanda kurung lagi. Kita juga bisa memilih beberapa baris sekaligus. Misalkan Anda juga ingin menyertakan India dan China. Cukup tambahkan label baris tersebut ke dalam list.
brics.loc[["RU", "IN", "CH"]]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Delhi 3.286 1252.00
CH China Beijing 9.597 1357.00
Perbedaan antara menggunakan loc dan tanda kurung siku dasar adalah Anda dapat memperluas seleksi dengan koma dan spesifikasi kolom yang diinginkan.
Memilih baris dan kolom
Mari perluas pemanggilan sebelumnya untuk hanya menyertakan kolom country dan capital. Kita tambahkan koma dan daftar label kolom yang ingin kita pertahankan. Irisan perpotongannya yang dikembalikan.
brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
country capital
RU Russia Moscow
IN India New Delhi
CH China Beijing
Anda juga dapat menggunakan loc untuk memilih semua baris tetapi hanya sejumlah kolom tertentu. Cukup ganti daftar pertama yang menentukan label baris dengan tanda titik dua. Sebuah slice dari awal hingga akhir. Kali ini, kita mendapatkan kembali semua baris tetapi hanya dua kolom.
Memilih Semua Baris dan Kolom Tertentu
brics.loc[:, ["country", "capital"]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Delhi
CH China Beijing
SA South Africa Pretoria
Fungsi iloc
Fungsi iloc memungkinkan Anda membuat subset DataFrame pandas berdasarkan posisi atau indeksnya.
Memilih baris
Mari gunakan data yang sama dan contoh serupa seperti yang kita lakukan untuk loc. Mulailah dengan mengambil baris untuk Russia.
brics.iloc[[1]]
country capital area population
RU Russia Moscow 17.100 143.50
Untuk mengambil baris untuk Russia, India, dan China, Anda sekarang dapat menggunakan daftar indeks 1, 2, 3.
brics.iloc[[1, 2, 3]]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Delhi 3.286 1252.00
CH China Beijing 9.597 1357.00
Memilih baris dan kolom
Serupa dengan loc, kita juga dapat memilih baris dan kolom menggunakan iloc. Di sini, kita akan memilih baris untuk Russia, India, dan China serta kolom country dan capital.
brics.iloc[[1, 2, 3], [0, 1]]
country capital
RU Russia Moscow
IN India New Delhi
CH China Beijing
Memilih semua baris dan kolom tertentu
Terakhir, jika Anda ingin memilih semua baris tetapi hanya mempertahankan kolom country dan capital, Anda dapat:
brics.loc[:, [0, 1]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Delhi
CH China Beijing
SA South Africa Pretoria
Fungsi loc dan iloc cukup mirip. Perbedaannya hanya pada cara Anda merujuk kolom dan baris.
Contoh Interaktif tentang Memilih Subset Data
Pada contoh berikut, data mobil diimpor dari file CSV sebagai DataFrame Pandas. Untuk memilih hanya cars_per_cap column dari cars, Anda dapat menggunakan:
cars['cars_per_cap']
cars[['cars_per_cap']]
Versi dengan satu kurung siku menghasilkan Series Pandas; versi dengan kurung siku ganda menghasilkan DataFrame Pandas.
- Anda akan menggunakan kurung siku tunggal untuk mencetak kolom
countrydaricarssebagai Series Pandas. - Kemudian gunakan kurung siku ganda untuk mencetak kolom
countrydaricarssebagai DataFrame Pandas. - Terakhir, gunakan kurung siku ganda untuk mencetak sebuah DataFrame dengan kolom
countrydandrives_rightdaricars, dalam urutan tersebut.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)
# Print out country column as Pandas Series
print(cars['country'])
# Print out country column as Pandas DataFrame
print(cars[['country']])
# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])
Saat kita menjalankan kode di atas, hasilnya sebagai berikut:
US United States
AUS Australia
JPN Japan
IN India
RU Russia
MOR Morocco
EG Egypt
Name: country, dtype: object
country
US United States
AUS Australia
JPN Japan
IN India
RU Russia
MOR Morocco
EG Egypt
country drives_right
US United States True
AUS Australia False
JPN Japan False
IN India False
RU Russia True
MOR Morocco True
EG Egypt True
Untuk mempelajari lebih lanjut tentang pandas, silakan lihat video dari kursus kami Intermediate Python.
Konten ini diambil dari kursus Intermediate Python di DataCamp oleh Hugo Bowne-Anderson.
