Overview
Fungsi reset_index() di Pandas digunakan untuk mengatur ulang indeks DataFrame ke indeks default, yang merupakan indeks numerik mulai dari 0, atau untuk mengubah indeks multi-level. Fungsi ini memungkinkan pengembalian indeks yang ada ke dalam kolom DataFrame jika parameter drop disetel menjadi False, menjaga integritas data sambil memfasilitasi manipulasi lebih lanjut.
Dalam library Pandas, terdapat sebuah fungsi yang sering terlihat sederhana namun memiliki peran penting: reset_index().
Fungsi ini bukan hanya tentang mengatur ulang indeks–namun juga tentang memulihkan struktur data ke bentuk paling mendasar, memungkinkan manipulasi lebih lanjut yang lebih bersih dan terorganisasi.
Secara default, setiap DataFrame memiliki indeks yang membantu mengidentifikasi setiap baris data secara unik. Namun, ada kalanya indeks ini perlu diatur ulang, misalnya setelah kamu melakukan pengurutan atau pemfilteran data, sehingga indeks tidak lagi berurutan.
Di artikel ini, kita akan menyelami bagaimana reset_index() bekerja, mengapa fungsi ini begitu vital dalam proses analisis data, dan bagaimana cara memanfaatkannya untuk memaksimalkan pengelolaan dataset kamu. Selamat membaca!
Reset Index Syntax
Fungsi reset_index() di Pandas memiliki syntax dan beberapa parameter yang dapat dikonfigurasi, guna memenuhi berbagai kebutuhan saat mengatur ulang indeks DataFrame. Berikut penjelasan lengkap tentang syntax dan parameter fungsi ini:
Parameter:
- level: parameter ini digunakan untuk menentukan level atau tingkatan indeks yang ingin di-reset. Jika DataFrame memiliki multi-level index (indeks bertingkat), kamu bisa memilih level mana yang akan di-reset. Jika tidak diisi, semua level akan di-reset.
- drop: bila diatur menjadi True, kolom indeks yang di-reset tidak akan ditambahkan kembali ke DataFrame sebagai kolom data; melainkan dihilangkan. Jika False, indeks yang di-reset akan dijadikan kolom biasa dalam DataFrame.
- Inplace: jika nilai dari inplace adalah True, perubahan pada DataFrame akan dilakukan inplace, atau langsung pada DataFrame tersebut tanpa membuat salinan baru. Jika False, perubahan akan menghasilkan salinan baru dan DataFrame asli tidak berubah.
- col_level: dipakai jika kamu memiliki kolom bertingkat (multi-level column) dan ingin menentukan di level mana kolom yang di-reset akan ditambahkan.
- col_fill: bila DataFrame memiliki multi-level column, parameter ini digunakan untuk mengisi nama kolom untuk level yang tidak memiliki nama.
Return:
Fungsi reset_index() mengembalikan DataFrame baru dengan indeks yang telah diatur ulang, kecuali jika inplace=True, di mana tidak ada nilai yang dikembalikan karena perubahan telah dilakukan langsung pada DataFrame yang ada.
Cara dan Contoh Metode Reset Index di Pandas
Misalnya, kamu memiliki dataset awal sebagai berikut:
#1 Membuat indeks sendiri tanpa menghapus indeks default
Kamu ingin menambahkan kolom indeks baru tanpa menghapus indeks default.
Cara:
Output:
#2 Membuat indeks sendiri dan menghapus indeks default
Kamu bisa mengatur ulang indeks sambil menghapus indeks yang ada.
Cara:
Output:
#3 Mengatur ulang indeks sendiri dan membuat indeks default sebagai indeks
Kamu juga bisa mengatur ulang indeks dan memulihkan indeks default sebagai indeks utama.
Cara:
Output:
#4 Menjadikan kolom DataFrame sebagai indeks dan menghapus indeks default
Sebagai contoh, kamu ingin menjadikan kolom 'A' sebagai indeks dan menghapus indeks default.
Cara:
Output:
#5 Menjadikan kolom DataFrame sebagai indeks tanpa menghapus indeks
Contoh lainnya yaitu mengatur kolom 'A' sebagai indeks tanpa menghapus indeks yang ada.
Cara:
Output:
Kombinasi Group By dan Reset Index
Kita biasanya juga perlu mengelompokkan data berdasarkan beberapa kriteria, kemudian mereset indeks untuk membuat data lebih terstruktur dan mudah diakses.
Kombinasi penggunaan groupby dan reset_index di Pandas adalah teknik yang sangat berguna dalam mengolah data agregat dan mempersiapkannya untuk analisis lebih lanjut.
Mari kita buat contoh penggunaan kombinasi groupby dan reset_index menggunakan contoh dataset di atas. Kita akan mengelompokkan data berdasarkan kolom Kota, lalu menghitung rata-rata pendapatan di masing-masing kota. Setelah itu, kita akan menggunakan reset_index untuk mengembalikan DataFrame ke indeks numerik yang standar.
Pertama, kita perlu mengimpor library Pandas dan membuat DataFrame dari data yang diberikan.
Kita akan mengelompokkan data berdasarkan Kota dan menghitung rata-rata pendapatan di setiap kota.
Hasilnya, grouped_df akan menjadi Series dengan Kota sebagai indeks dan rata-rata pendapatan sebagai nilai.
Untuk mengubah Series kembali ke DataFrame dan mengembalikan indeks ke bentuk standar:
Output reset_df akan menjadi DataFrame dengan indeks numerik dan kolom untuk Kota serta rata-rata Pendapatan.
Output:
FAQs (Frequently Asked Questions)
Bagaimana cara mempertahankan kolom indeks lama setelah reset_index()?
Untuk mempertahankan kolom indeks lama setelah menggunakan reset_index() pada DataFrame di Pandas, kamu perlu mengatur parameter drop menjadi False.
Secara default, parameter ini diatur sebagai False, jadi jika kamu tidak menyebutkannya, indeks yang ada secara otomatis disimpan sebagai kolom biasa dalam DataFrame.
Apa perbedaan antara reset_index() dan set_index()?
Perbedaan utama antara reset_index() dan set_index() dalam Pandas adalah kegunaan dan arah perubahan yang mereka lakukan pada indeks DataFrame.
Fungsi reset_index() dipakai untuk mengatur ulang indeks DataFrame ke indeks default, yaitu indeks numerik yang dimulai dari 0. Sementara itu, fungsi set_index() berguna untuk menetapkan satu atau lebih kolom sebagai indeks baru DataFrame.
Lebih lanjut, berikut tabel perbedaan keduanya:
Bagaimana cara menggunakan reset_index() pada DataFrame dengan multi-level index?
Ketika bekerja dengan DataFrame yang memiliki multi-level index (juga dikenal sebagai hierarchical index) di Pandas, fungsi reset_index() dapat digunakan untuk mengatur ulang satu atau lebih level dari indeks tersebut.
Ini memungkinkan kamu untuk menangani struktur data yang kompleks dengan lebih fleksibel.
Apakah menggunakan reset_index() dapat memengaruhi performa aplikasi?
Ya, menggunakan reset_index() pada DataFrame di Pandas bisa memengaruhi performa aplikasi, terutama dalam konteks tertentu, termasuk:
- Penggunaan memori: mengatur ulang indeks biasanya memerlukan pembuatan salinan data. Jika drop=False, yang mana adalah setting default, indeks lama akan ditambahkan ke DataFrame sebagai kolom baru. Artinya, lebih banyak memori akan digunakan karena data tambahan disimpan dalam bentuk kolom.
- Waktu proses: proses mengatur ulang indeks melibatkan rekonstruksi struktur DataFrame. Untuk DataFrame besar, ini bisa menjadi operasi yang berat dan memakan waktu, terutama jika dilakukan berulang kali dalam suatu loop atau dalam aplikasi yang membutuhkan respons real time.
- Efisiensi komputasi: secara default, reset_index() mengembalikan DataFrame baru, kecuali jika inplace=True diatur. Membuat DataFrame baru bisa menjadi operasi yang mahal dalam hal komputasi dan penggunaan sumber daya, terutama dengan data besar atau kompleks (seperti multi-level index).
Tips untuk meningkatkan performa:
- Menggunakan inplace=True: jika kamu tidak membutuhkan salinan dari DataFrame asli dan hanya ingin memodifikasi DataFrame yang ada, menggunakan inplace=True dapat mengurangi overhead memori dengan tidak membuat salinan baru.
- Meminimalkan penggunaan: pertimbangkan kebutuhan untuk mengatur ulang indeks. Jika bisa dihindari atau digantikan dengan operasi lain yang lebih efisien, hal itu mungkin lebih baik untuk performa.
- Mengelola level indeks: jika bekerja dengan multi-level index, mengatur ulang hanya level tertentu yang diperlukan daripada seluruh set indeks dapat mengurangi overhead.
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!)