Selama ini kita memakai pandas sebagai kotak hitam: method dipanggil, hasil datang. Padahal seluruh kode pandas terbuka untuk dibaca, dan membaca kode produksi orang lain adalah salah satu cara belajar tercepat untuk melihat bagaimana pola-pola yang kita pelajari — type hint, docstring, validasi argumen — dipakai secara nyata. Chapter ini menunjukkan di mana contoh kode resmi pandas tersimpan, bagaimana membaca source-nya langsung dari Python, dan cara memanfaatkannya tanpa merasa kalah oleh ukuran proyeknya.
Repositori Resmi pandas di GitHub #
Kode sumber, issue, dan pull request pandas berkumpul di repositori resmi pandas-dev/pandas
. Strukturnya teratur: kode inti berada di folder pandas/, dengan pandas/core/frame.py menjadi rumah class DataFrame dan pandas/core/series.py menjadi rumah Series. Karena repositori utama terus bergerak, biasakan membuka kode sesuai versi yang terpasang; tautan frame.py pada tag v3.0.6
menunjuk persis versi yang dipakai Course ini.
Selain kode produksi, dua tempat lain di ekosistem resmi kaya akan contoh: bagian Examples di tiap halaman API reference yang bisa disalin utuh ke REPL, dan dokumentasi development pandas
yang memandu menyiapkan lingkungan pengembangan — lengkap dengan cara menjalankan test suite pandas sendiri.
Membaca Source dari dalam Python #
Kabar baiknya: untuk method-method publik, kita tidak perlu membuka GitHub. Modul inspect bawaan Python bisa mengambil source code objek pandas yang terpasang di komputer Anda, sehingga kode yang dilihat dijamin persis versi yang sedang dijalankan.
import inspect
import pandas as pd
contoh = {
"pandas.read_csv": pd.read_csv,
"pandas.DataFrame.merge": pd.DataFrame.merge,
"pandas.DataFrame.head": pd.DataFrame.head,
}
for nama, obj in contoh.items():
jumlah = len(inspect.getsource(obj).splitlines())
doc = inspect.getdoc(obj).splitlines()[0]
print(nama)
print(f" {jumlah} baris kode | {doc}")
print()
baris_terakhir = inspect.getsource(pd.DataFrame.head).splitlines()[-1]
print("Baris terakhir source DataFrame.head:")
print(baris_terakhir.strip())Output yang Dihasilkan:
pandas.read_csv
524 baris kode | Read a comma-separated values (csv) file into DataFrame.
pandas.DataFrame.merge
35 baris kode | Merge DataFrame or named Series objects with a database-style join.
pandas.DataFrame.head
88 baris kode | Return the first `n` rows.
Baris terakhir source DataFrame.head:
return self.iloc[:n].copy()Mari kita telaah apa yang diperlihatkan output di atas:
pandas.read_csv— 524 baris kode: method sehari-hari ini ternyata punya banyak logika: mendeteksi pemisah, mengelola encoding, dan menyusun dtype per kolom. Panjangnya menjelaskan mengapa dokumen IO tools begitu tebal.pandas.DataFrame.merge— 35 baris kode: sebaliknya, merge tampak ramping karena pekerjaan beratnya didelegasikan ke modul internalpandas.core.reshape.merge. Pola “API publik tipis, mesin di baliknya” adalah pola arsitektur yang layak ditiru di kode Anda sendiri.pandas.DataFrame.head— 88 baris kode: hampir seluruhnya docstring; baris terakhirnya,return self.iloc[:n].copy(), adalah satu-satunya logika. Angka ini mengingatkan bahwa docstring resmi adalah bagian dari kode, ditulis dan diuji seperti kode.
Ketiga angka itu menyusun pesan yang utuh: ukuran source tidak menggambarkan kesulitan. Method kecil seperti head bisa dibaca habis dalam satu menit, dan docstring panjangnya justru adalah contoh kode terkurasi yang bisa langsung dicoba.
Memanfaatkan Contoh Resmi Secara Terarah #
Tiga kebiasaan berikut mengubah repo dan API reference menjadi ruang latihan. Pertama, mulai dari method yang Anda pakai tiap hari: buka halamannya di API reference, baca bagian Examples, lalu baca source-nya lewat inspect — urutan ini menutup jarak antara cara pakai dan cara kerja. Kedua, tiru pola dokumentasinya: docstring pandas selalu memuat parameter, return, dan contoh yang bisa dijalankan; format itu layak Anda ikuti saat menulis fungsi sendiri, sebagaimana dibahas pada Section Pengujian dan Debugging. Ketiga, baca pull request yang menutup issue kecil: diff pendek tentang perbaikan pesan error, misalnya, memperlihatkan standar kualitas komunitas sekaligus cara mereka berdiskusi.
Contoh kode resmi menuntut pembaca aktif, dan pembaca aktif membutuhkan kosakata yang tepat. Kebutuhan terakhir inilah yang dijawab chapter penutup course ini: glosarium.