Overview
Fungsi apply dalam Pandas memungkinkan untuk menerapkan fungsi kustom, baik pada baris atau kolom dari DataFrame. Ini memberikan cara efisien untuk melakukan operasi yang kompleks atau tidak secara langsung didukung oleh metode Pandas bawaan.
Dalam pengolahan data menggunakan Python, Pandas menjadi salah satu library paling sering digunakan karena kemampuannya memanipulasi dan menganalisis data.
Salah satu fitur yang paling powerful dari Pandas adalah fungsi apply. Fungsi ini berguna untuk menerapkan suatu fungsi ke seluruh elemen di dalam kolom DataFrame. Misalnya, jika kamu memiliki data mengenai harga produk dan ingin menghitung pajak untuk setiap produk, kamu bisa menggunakan Pandas apply untuk menerapkan fungsi perhitungan pajak tersebut secara efisien.
Adanya apply juga bermanfaat untuk menerapkan fungsi yang kompleks ke data, memungkinkan penggunaan operasi yang lebih spesifik daripada metode vektorisasi standar. Ini memfasilitasi manipulasi data tanpa perlu menulis loop secara manual.
Menggunakan apply dapat meningkatkan kecepatan eksekusi kode dalam kasus tertentu dan membuat kode lebih clean serta mudah dibaca, khususnya ketika fungsi yang diterapkan rumit dan tidak mudah untuk di-vektorisasi.
Artikel ini mengajak kamu untuk menyelami lebih dalam cara kerja dan keunggulan apply dalam Pandas. Selamat membaca!
Sintaks Apply Function di Pandas
Sintaks dasar untuk menggunakan fungsi apply di Pandas adalah sebagai berikut:
- func: fungsi yang ingin kamu terapkan pada DataFrame. Ini bisa berupa fungsi yang telah didefinisikan sebelumnya atau menggunakan lambda function.
- axis: parameter ini menentukan apakah fungsi diterapkan pada baris atau kolom. axis=0 menerapkan fungsi ke setiap kolom, sementara axis=1 menerapkan fungsi ke setiap baris.
- args: tuple berisi argumen tambahan yang bisa diberikan ke fungsi.
- kwds: keyword arguments tambahan untuk fungsi.
Cara Menerapkan Fungsi ke Satu Kolom di Pandas
Untuk menerapkan fungsi ke satu kolom di Pandas, ikuti langkah berikut:
- Pastikan library Pandas sudah diimpor ke dalam workspace Python-mu.
- Inisialisasi DataFrame dengan data yang ingin kamu manipulasi.
- Buat fungsi yang ingin diterapkan pada kolom.
- Gunakan metode .apply() pada kolom yang dipilih untuk menerapkan fungsi tersebut.
Misalnya, kita memiliki dataset tentang harga produk dan jumlah produk yang terjual. Kita ingin menambahkan kolom baru yang menunjukkan total penjualan dari masing-masing produk.
Dataset awal:
Langkah 1: impor Pandas
Langkah 2: buat DataFrame
Langkah 3: definisikan fungsi
Langkah 4: terapkan fungsi
DataFrame yang diperbarui akan terlihat seperti ini:
Dalam contoh ini, kolom 'harga_pajak' menunjukkan harga setelah ditambahkan pajak 10%.
Cara Menerapkan Fungsi ke Beberapa Kolom di Pandas
Menerapkan fungsi ke beberapa kolom di Pandas dapat dilakukan dengan cara berikut:
- Pastikan library Pandas sudah diimpor ke dalam workspace Python-mu.
- Inisialisasi DataFrame dengan data yang ingin dimanipulasi.
- Buat fungsi yang ingin kamu terapkan pada beberapa kolom.
- Gunakan metode .apply() dengan axis=1 untuk menerapkan fungsi tersebut pada beberapa kolom sekaligus.
Misalnya, kita memiliki dataset yang berisi data penjualan produk, termasuk harga dan jumlah barang yang terjual. Kita ingin menghitung total penjualan dan memberikan diskon 10% untuk produk yang total penjualannya melebihi 100000.
Dataset awal:
Langkah 1: impor Pandas
Langkah 2: buat DataFrame
Langkah 3: definisikan fungsi
Langkah 4: pilih kolom dan terapkan fungsi
DataFrame yang diperbarui akan terlihat seperti ini:
Dalam contoh di atas, kolom 'total_setelah_diskon' menunjukkan total penjualan setelah diskon diterapkan jika total melebihi 100000.
Cara Menerapkan Fungsi ke Semua Kolom di Pandas
Menerapkan fungsi ke semua kolom di Pandas dapat dilakukan menggunakan metode .applymap(). Metode ini cocok untuk transformasi yang perlu diterapkan ke setiap elemen individual dalam DataFrame.
Berikut caranya:
- Pastikan library Pandas telah diimpor ke dalam environment Python-mu.
- Siapkan DataFrame dengan data yang ingin kamu manipulasi.
- Buat fungsi yang ingin diaplikasikan ke setiap elemen dalam DataFrame.
- Gunakan metode .applymap() untuk menerapkan fungsi ke seluruh elemen di DataFrame.
Misalkan kita memiliki dataset yang mencatat nilai-nilai suhu dalam Celsius dan ingin mengonversi semua nilai tersebut ke Fahrenheit.
Dataset awal:
Langkah 1: Impor Pandas
Langkah 2: buat DataFrame
Langkah 3: definisikan fungsi
Langkah 4: terapkan fungsi ke semua kolom
DataFrame yang diperbarui akan terlihat sebagai berikut:
FAQs (Frequently Asked Questions)
Apa perbedaan antara apply dan applymap?
Perbedaan utama antara apply dan applymap di Pandas terletak pada cakupan penerapan fungsi dan struktur yang dioperasikan.
apply bisa digunakan untuk menerapkan fungsi sepanjang axis dari DataFrame—baik pada baris atau kolom. Artinya, fungsi yang kamu terapkan bisa memproses dan mengembalikan hasil berdasarkan seluruh baris atau kolom.
Sementara itu, applymap hanya digunakan pada DataFrame dan menerapkan fungsi ke setiap elemen secara individu. Ini berarti setiap sel di DataFrame diproses secara terpisah.
Lebih lanjut, berikut tabel perbedaan keduanya:
Bagaimana performa apply dibandingkan dengan operasi vektorisasi di Pandas?
Operasi vektorisasi di Pandas melibatkan penerapan operasi secara langsung pada seluruh array atau serangkaian data secara bersamaan, tanpa perlu loop eksplisit. Ini menggunakan kekuatan NumPy, yang merupakan library untuk mengoptimalkan operasi matematika dan array di Python.
Di sisi lain, metode apply memungkinkan penggunaan fungsi yang lebih kompleks atau kustom, yang bisa saja melibatkan operasi baris atau kolom secara keseluruhan, atau kondisi yang tidak dapat dengan mudah di-vektorisasi.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)