Manipulasi Data & Pembuatan Kolom Baru
Setelah memahami cara melihat, memilih, membersihkan, dan memvisualisasikan data menggunakan Pandas, langkah berikutnya adalah melakukan manipulasi data.
Salah satu manipulasi yang paling sering dilakukan adalah membuat kolom baru berdasarkan data yang sudah ada.
Contohnya, pada dataset penjualan mobil kita mungkin memiliki kolom:
Make- merek mobilColour- warna mobilOdometer- jarak tempuhPrice- harga mobil
Kemudian kita ingin menambahkan informasi baru seperti:
- jumlah kursi mobil,
- konsumsi bahan bakar,
- total bahan bakar yang digunakan,
- jumlah roda,
- status kelayakan kendaraan.
Pandas menyediakan beberapa cara untuk melakukan hal tersebut.
1. Membuat Kolom Baru dari Pandas Series
Salah satu cara membuat kolom baru adalah menggunakan pd.Series.
Contoh:
import pandas as pd
seats_column = pd.Series([5, 5, 5, 5])
car_sales["Seats"] = seats_column
Kode tersebut membuat sebuah Series bernama seats_column, kemudian memasukkannya ke DataFrame sebagai kolom baru bernama Seats.
Jika jumlah data pada Series lebih sedikit daripada jumlah baris DataFrame, Pandas akan mengisi baris yang tidak memiliki nilai dengan NaN.
Contoh
Misalnya DataFrame memiliki 10 baris:
Make Colour Odometer
toyota white 150000
honda blue 120000
bmw black 90000
ford red 80000
...
Kemudian kita membuat Series yang hanya memiliki 4 nilai:
seats_column = pd.Series([5, 5, 5, 5])
Ketika dimasukkan:
car_sales["Seats"] = seats_column
Hasilnya kira-kira:
Make Colour Odometer Seats
toyota white 150000 5
honda blue 120000 5
bmw black 90000 5
ford red 80000 5
... NaN
... NaN
Baris yang tidak memiliki nilai akan mendapatkan NaN.
Mengisi Nilai yang Hilang
Nilai NaN dapat ditangani menggunakan fillna().
car_sales["Seats"] = car_sales["Seats"].fillna(5)
Sekarang nilai yang kosong akan diganti dengan 5.
Untuk pembelajaran dan kode yang lebih eksplisit, penggunaan assignment seperti di atas sering lebih mudah dipahami daripada mengubah data secara langsung menggunakan inplace=True.
2. Membuat Kolom Baru dari Python List
Selain Series, kita juga dapat menggunakan Python list.
Contoh:
fuel_economy = [7.5, 9.2, 5.0, 9.6, 8.7, 4.7, 3.0, 8.7, 4.5, 4.0]
car_sales["Fuel per 100km"] = fuel_economy
Pada metode ini, jumlah elemen pada list harus sama persis dengan jumlah baris pada DataFrame.
Misalnya DataFrame memiliki 10 baris, maka list harus memiliki 10 nilai.
Jika Jumlah Data Tidak Sama
Misalnya DataFrame memiliki 10 baris tetapi list hanya memiliki 4 nilai:
fuel_economy = [7.5, 9.2, 5.0, 9.6]
car_sales["Fuel per 100km"] = fuel_economy
Pandas akan menghasilkan error:
ValueError: Length of values does not match length of index
Hal ini berbeda dengan pd.Series, karena Series memiliki index sehingga Pandas dapat melakukan alignment berdasarkan index.
3. Membuat Kolom Berdasarkan Operasi Kolom Lain
Kolom baru juga dapat dibuat berdasarkan hasil perhitungan dari kolom yang sudah ada.
Misalnya kita memiliki:
Odometer- jarak tempuh kendaraan dalam kilometerFuel per 100km- konsumsi bahan bakar dalam liter per 100 kilometer
Kita dapat menghitung perkiraan total bahan bakar yang digunakan:
car_sales["Total fuel used (L)"] = (
car_sales["Odometer"] / 100
) * car_sales["Fuel per 100km"]
Cara Kerja Perhitungan
Misalnya sebuah mobil memiliki:
Odometer = 150000 km
Fuel per 100km = 7.5 liter
Maka:
150000 / 100 × 7.5
= 1500 × 7.5
= 11250 liter
Sehingga nilai pada kolom Total fuel used (L) adalah 11250.
Pandas melakukan operasi tersebut terhadap seluruh baris secara otomatis.
4. Membuat Kolom dari Nilai Tunggal
Jika kita ingin memberikan nilai yang sama kepada seluruh baris, kita tidak perlu membuat Series atau list.
Cukup berikan sebuah nilai tunggal.
Contoh:
car_sales["Number of wheels"] = 4
Pandas akan mengisi seluruh baris dengan nilai 4.
Hasilnya:
Make Number of wheels
toyota 4
honda 4
bmw 4
ford 4
...
Cara ini disebut menggunakan scalar value.
Membuat Kolom Boolean
Kita juga dapat membuat kolom dengan nilai Boolean.
car_sales["Passed road safety"] = True
Hasilnya seluruh baris akan memiliki nilai:
True
Kolom Boolean dapat digunakan untuk merepresentasikan kondisi seperti:
- kendaraan lulus pemeriksaan,
- pelanggan aktif,
- transaksi berhasil,
- produk tersedia,
- data valid.
5. Menghapus Kolom
Selain menambahkan kolom, kita juga perlu mengetahui cara menghapus kolom yang tidak diperlukan.
Pandas menyediakan method drop().
Contoh:
car_sales = car_sales.drop("Total fuel used (L)", axis=1)
Kode tersebut menghapus kolom Total fuel used (L) dari DataFrame.
Memahami Parameter axis
Parameter axis digunakan untuk menentukan arah operasi.
| Nilai | Arti |
|---|---|
axis=0 | Baris |
axis=1 | Kolom |
Karena kita ingin menghapus kolom, digunakan:
axis=1
Menghapus Beberapa Kolom
Kita juga dapat menghapus beberapa kolom sekaligus.
car_sales = car_sales.drop(
["Number of wheels", "Passed road safety"],
axis=1
)