Kursus
Analisis data kerap sangat bergantung pada pustaka pandas yang tak tergantikan. Pustaka ini menyediakan struktur data dan fungsi manipulasi data yang mudah digunakan sehingga memungkinkan penanganan dataset tabular secara efisien. Dengan pandas, pengguna dapat dengan mudah mengimpor, membersihkan, mentransformasi, dan mengagregasikan data dari berbagai sumber, termasuk file CSV, spreadsheet Excel, basis data SQL, dan lainnya.
Jika Anda ingin mempelajari cara mengimpor dan membersihkan data, menghitung statistik, serta membuat visualisasi dengan pandas, lihat Kursus Data Manipulation with pandas kami.
Dalam tutorial ini, kita akan menelusuri iterasi terbaru pustaka pandas, mengeksplorasi fitur-fitur terbarunya beserta contoh cara menggunakannya.
Pembaruan pandas 2.0 yang Lama Dinanti Akhirnya Hadir
Pandas 2.0 dirilis pada 3 April 2023, menandai tiga tahun pengembangan. Versi terbaru ini menawarkan beragam fitur baru, seperti dukungan extension array yang ditingkatkan, dukungan DataFrame untuk PyArrow, dan resolusi datetime non-nanodetik. Namun, versi ini juga mencakup deprecations yang ditegakkan, sehingga terjadi perubahan API.
Sebagai pembaruan signifikan untuk Pandas, versi 2.0 menerapkan semua deprecation pada 1.X. Rilis terbaru 1.5.3 memiliki sekitar 150 peringatan. Jika kode Anda bebas peringatan di 1.X, seharusnya kompatibel dengan versi 2.0.
Mengungkap Fitur Terbaru di pandas 2.0
Mari kita lihat apa saja yang baru di pandas 2.0, termasuk cara menggunakan beberapa fitur yang ditingkatkan.
Peningkatan Performa: Operasi Lebih Cepat dan Lebih Hemat Memori
PyArrow dapat dianggap sebagai fitur yang paling menonjol pada rilis ini.
Pandas awalnya dikembangkan menggunakan struktur data NumPy untuk manajemen memori, namun kini pengguna dapat memilih untuk memanfaatkan PyArrow sebagai format memori pendukungnya.
PyArrow adalah pustaka Python (dibangun di atas Arrow) yang menyediakan antarmuka untuk menangani dataset besar menggunakan struktur memori Arrow, serta alat untuk serialisasi, kompresi, dan integrasi dengan sistem pemrosesan data lain seperti Apache Spark dan Apache Parquet.
Arrow adalah format data kolumnar sumber terbuka dan lintas bahasa untuk merepresentasikan data di memori. Ia ditulis dalam C++, namun bersifat agnostik terhadap bahasa.
Penggunaan memori yang tidak efisien akibat back-end NumPy asli merupakan masalah umum yang mendorong pengguna untuk mengeksplorasi alat pemrosesan data alternatif seperti Spark, Dask, Ray, dan lain-lain. Dengan mengurangi konsumsi memori melalui back-end PyArrow, Pandas kini dapat menawarkan pengalaman yang lebih ringkas dan memungkinkan pengguna bekerja lebih efisien.
Tolok ukur yang membandingkan operasi mean dan replace menggunakan back-end NumPy dan PyArrow, bersamaan dengan Polars

Polars adalah pustaka manipulasi data berbasis Rust untuk Python yang menyediakan API DataFrame serupa pandas, namun dengan performa dan skalabilitas yang lebih baik untuk dataset besar. Untuk mempelajari lebih lanjut tentang pustaka Polars, kunjungi situs resmi.
Berikut cuplikan kode untuk membaca file CSV menggunakan PyArrow sebagai back-end:
pd.read_csv(my_file, dytpe_backend='pyarrow')
Jika Anda ingin mempelajari teknik-teknik efisien di pandas untuk mengoptimalkan kode Python Anda, lihat kursus Writing Efficient Code with pandas di DataCamp.
Tipe data nullable kini dimungkinkan
Menangani nilai hilang di pandas dulunya menantang karena NumPy tidak mendukung nilai null pada tipe data tertentu. Misalnya, dtype integer NumPy tidak mengizinkan nilai null. Ketika nilai null dimasukkan ke dalam kolom integer, kolom tersebut akan otomatis diubah menjadi dtype float, yang kurang ideal.
Pandas 1.0 memperkenalkan dtype yang dapat di-null, namun penggunaannya memerlukan upaya tambahan. Untungnya, pada versi terbaru, saat membaca data ke dalam DataFrame, Anda dapat menentukan penggunaan dtype yang dapat di-null, sehingga prosesnya jauh lebih sederhana.
pd.read_csv(my_file, use_nullable_dtypes=True)
Peningkatan Performa Copy-on-Write
Copy-on-Write adalah teknik optimasi memori yang digunakan oleh Pandas untuk meningkatkan performa dan meminimalkan penggunaan memori saat menangani dataset besar. Ini membuat Pandas lebih mirip Spark dalam hal bagaimana operasi lazy dilakukan di Spark. Operasi lazy mengacu pada operasi yang tidak langsung dieksekusi, melainkan menunggu hingga ada aksi yang memicu komputasi. Operasi ini disebut "lazy" karena menunda eksekusi hingga diperlukan untuk menghitung dan mengembalikan hasil akhirnya.
Konsep dasarnya adalah menghasilkan referensi ke data asli ketika membuat salinan objek pandas, seperti DataFrame atau Series, dan hanya membuat salinan baru ketika ada modifikasi yang dilakukan.
Pendekatan ini memungkinkan beberapa salinan data yang sama mengakses memori yang sama hingga terjadi perubahan apa pun, menghilangkan kebutuhan penyalinan data yang berulang dan secara signifikan mengurangi penggunaan memori, sehingga meningkatkan performa.
Tipe Numerik NumPy Didukung oleh Index
Di pandas 2.0, fitur Index telah diperluas untuk mencakup dtype numerik NumPy, seperti int8, int16, int32, uint8, uint16, uint32, uint64, float32, dan float64, yang sebelumnya hanya mendukung tipe int64, uint64, dan float64.
Pembaruan ini memungkinkan pembuatan indeks dengan ukuran bit yang lebih rendah, misalnya indeks 32-bit, pada operasi yang sebelumnya menghasilkan indeks 64-bit.
Semua indeks numerik kini direpresentasikan sebagai Index dengan dtype terkait.
Menginstal pip extras
Dengan menentukan extras saat menginstal pandas menggunakan pip, Anda dapat menginstal serangkaian dependensi opsional tambahan. Contohnya:
pip install "pandas[performance, aws]>=2.0.0"
Perintah ini akan memasang dependensi opsional performance dan aws. Panduan instalasi pandas menyediakan daftar extras yang tersedia. Ini mencakup: [all, performance, computation, fss, aws, gcp, excel, parquet, feather, hdf5, spss, postgresql, mysql, sql-other, html, xml, plot, output_formatting, clipboard, compression, dan test] Jangan lupa menambahkan tanda kutip (“).
Resolusi non-nanodetik pada Timestamp
Dalam waktu lama, pandas memiliki keterbatasan di mana cap waktu hanya direpresentasikan dalam resolusi nanodetik. Keterbatasan ini berarti tidak memungkinkan untuk merepresentasikan tanggal sebelum 21 September 1677 atau setelah 11 April 2264. Batasan ini menyulitkan peneliti yang menganalisis data runtun waktu dalam rentang yang sangat panjang.
Namun, dengan rilis pandas 2.0, dukungan untuk resolusi lain seperti detik, milidetik, dan mikrodetik telah ditambahkan. Peningkatan ini memungkinkan rentang waktu hingga +/- 2,9e11 tahun, mencakup sebagian besar kasus penggunaan.
Format Parsing yang Konsisten untuk Datetime
Sebelumnya, fungsi to_datetime() di pandas akan menyimpulkan format setiap elemen secara independen, yang bisa menjadi masalah ketika pengguna mengharapkan format yang konsisten, tetapi fungsi beralih format antar elemen.
Meskipun pendekatan ini cocok untuk kasus dengan format tanggal campuran, hal ini menimbulkan masalah bagi banyak pengguna.
Di pandas 2.0, proses parsing telah dimodifikasi untuk menggunakan format yang konsisten yang ditentukan oleh nilai non-NA pertama. Pengguna tetap dapat menentukan format; jika demikian, format tersebut yang akan digunakan.
Perilaku Lama:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[2]:
0 2000-01-13
1 2000-12-01
dtype: datetime64[ns]
Perilaku Baru:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[43]:
0 2000-01-13
1 2000-01-12
dtype: datetime64[ns]
Contoh direproduksi dari dokumentasi resmi.
Kompatibilitas dan Migrasi
Perubahan API yang tidak kompatibel mundur mengacu pada modifikasi pada API pustaka yang dapat merusak kode atau integrasi yang ada. Perubahan ini dapat mencakup penghapusan atau penggantian nama fungsi, kelas, atau parameter, atau perubahan pada perilaku yang diharapkan. Lihat daftar semua breaking changes di pandas 2.0 dalam dokumentasi tentang perubahan API yang tidak kompatibel mundur.
Untuk memperbarui pustaka pandas, cukup jalankan perintah ini di terminal atau notebook Anda:
pip install -U pandas
Komunitas dan Dukungan
Lihat catatan rilis lengkap untuk pandas 2.0
Anda juga dapat menggunakan lembar contekan data science pandas kami sebagai panduan cepat untuk dasar-dasar pustaka analisis data Python, termasuk contoh kode.

Cheatsheet dari DataCamp. Sumber
Sekelompok besar kontributor dan tim kecil maintainer secara kolektif mengembangkan pandas, sebuah proyek sumber terbuka yang digerakkan komunitas. Kepemimpinan pandas berkomitmen membangun komunitas yang positif, inklusif, dan terbuka. Jika Anda ingin berpartisipasi dalam komunitas ini, lihat panduan komunitas Kontributor oleh pandas.
Kesimpulan
Pandas 2.0 menandai pembaruan signifikan untuk pustaka analisis data populer ini, menghadirkan fitur-fitur baru seperti peningkatan performa melalui PyArrow, tipe data nullable, optimasi copy-on-write, dukungan yang diperluas untuk tipe numerik NumPy pada indeks, dan resolusi datetime non-nanodetik.
Dengan pembaruan ini, pandas kini mampu menangani dataset yang lebih besar dengan penggunaan memori yang lebih efisien, memberikan pengalaman yang lebih lancar bagi pengguna.
Untuk memanfaatkan fitur-fitur baru ini, pengguna cukup memperbarui pustaka pandas mereka dengan perintah pip install -U pandas. Komunitas pandas terus menyediakan dukungan dan sumber daya, termasuk kursus di DataCamp, untuk membantu pengguna meningkatkan keterampilan analisis data mereka.
Berikut beberapa tutorial yang sangat baik dan mungkin bermanfaat dalam perjalanan Anda mempelajari analisis data.
