Pekerjaan analisis pada jalur ini dijalankan dengan Python, pandas, dan Jupyter, sehingga ketiganya perlu terpasang sebelum kode pertama ditulis. Topik ini membahas pemasangan Python beserta package pendukungnya, yaitu kumpulan kode siap pakai yang dipasang melalui pip. Pemeriksaan versi yang terpasang dan cara kerja notebook Jupyter, yaitu dokumen yang memadukan teks dan kode, dibahas setelahnya. Topik ini juga memetakan konsep sel pada program lembar kerja, yang lazim disebut spreadsheet, ke konsep pandas sehingga kebiasaan menghitung di dalam tabel dapat dipindahkan langsung ke cara kerja pandas. Contoh yang digunakan sepanjang topik tetap kecil dan mudah dihitung ulang, berupa tabel nilai ujian empat siswa.
Memasang Python dan pandas#
Instal Python terlebih dahulu sebelum package pendukungnya dipasang. Penginstal resmi tersedia pada situs web Python untuk Windows dan macOS, sedangkan distribusi Linux umumnya memuatnya pada pengelola package masing-masing. Setelah Python berjalan, package dipasang melalui pip, yaitu pengelola package bawaan Python yang mengunduh dan memasang package dari repositori publik. Pemeriksaan berikut memastikan penerjemah Python sudah siap sebelum pemasangan dilanjutkan.
# memeriksa versi Python yang sudah terpasang
python3 --versionPython 3.12.16Versi 3.10 ke atas sudah memenuhi kebutuhan pandas 2.2 yang digunakan pada jalur ini. Perintah python3 lazim di macOS dan Linux, sedangkan pada Windows perintah yang sama biasanya dipanggil sebagai python. Setelah penerjemah terpasang, dua package berikut dipasang dari terminal.
# tidak-dijalankan
# memasang pandas beserta dependensinya
pip install pandas
# memasang JupyterLab untuk notebook
pip install jupyterlabPerintah di atas tidak dijalankan pada contoh topik ini karena mengubah lingkungan Python yang ada, berbeda dengan contoh yang hanya membaca informasi. Perintah pip install pandas ikut memasang numpy, yaitu package numerik yang menyediakan struktur array dan fungsi matematis sebagai fondasi pandas. Perintah pip install jupyterlab memasang JupyterLab beserta kernel Python untuk notebook.
Memeriksa hasil pemasangan#
Versi yang terpasang diperiksa dengan mengimpor package dan membaca atribut __version__. Pemeriksaan ini sekaligus menguji bahwa Python yang dijalankan adalah Python yang sama dengan tempat pandas dipasang, dan kesalahan umum terkait hal ini dibahas pada bagian akhir topik. Jalankan dua pemeriksaan berikut.
import pandas
print(pandas.__version__)2.2.3import numpy
print(numpy.__version__)2.1.3Angka yang tercetak menunjukkan pandas 2.2.3 dan numpy 2.1.3 pada lingkungan yang digunakan untuk menulis jalur ini. Versi di tempat lain boleh berbeda, tetapi pandas 2.2 ke atas menjaga perilaku contoh pada jalur ini tetap konsisten. Apabila perintah impor berakhir dengan pesan ModuleNotFoundError, pemasangan belum selesai atau berada di lingkungan Python yang berbeda. Setelah package terpasang, keberadaan Jupyter diperiksa dengan perintah berikut.
# memeriksa komponen Jupyter yang terpasang
jupyter --versionSelected Jupyter core packages...
IPython : 9.12.0
ipykernel : 7.2.0
ipywidgets : not installed
jupyter_client : 8.8.0
jupyter_core : 5.9.1
jupyter_server : 2.17.0
jupyterlab : 4.5.2
nbclient : 0.10.4
nbconvert : 7.17.1
nbformat : 5.10.4
notebook : 7.5.2
qtconsole : not installed
traitlets : 5.14.3Keluaran tersebut mencantumkan versi tiap komponen Jupyter. Komponen yang penting untuk topik ini adalah jupyterlab sebagai antarmukanya dan ipykernel sebagai mesin eksekusi kode di dalam notebook. Komponen yang bertanda not installed pada keluaran, yaitu ipywidgets dan qtconsole, tidak dibutuhkan pada jalur ini sehingga pesan tersebut dapat diabaikan. Komponen lain boleh berada pada versi apa pun tanpa memengaruhi contoh pada jalur ini.
Jembatan dari spreadsheet ke pandas#
pandas mengatur data dalam bentuk yang mirip dengan spreadsheet, tetapi cara berpikirnya berbeda. Pada spreadsheet, perhitungan ditulis di dalam sel tertentu dan disalin ke sel lain. Pada pandas, perhitungan dinyatakan sekali sebagai operasi pada seluruh kolom, lalu dijalankan untuk semua baris sekaligus. Perbedaan ini membuat pekerjaan analisis tidak lagi berupa ratusan rumus tersalin, melainkan beberapa baris kode yang selalu berlaku sebesar ukuran datanya.
Tiga istilah pandas menggantikan peran sel, baris, dan kolom pada spreadsheet. DataFrame adalah struktur tabel utama pandas yang menyimpan baris berlabel dan kolom bernama sebagaimana satu lembar kerja. Satu kolom DataFrame disebut Series, yaitu deretan nilai satu jenis dengan satu label per posisi, sedangkan label barisnya disebut index. Tabel berikut memetakan konsep spreadsheet ke padanannya di pandas.
| Konsep spreadsheet | Padanan di pandas | Catatan |
|---|---|---|
| Lembar kerja (sheet) | DataFrame | Satu tabel dengan baris berlabel dan kolom bernama |
| Baris | Baris berlabel (index) | Label bawaan berupa 0, 1, 2, dan seterusnya |
| Kolom | Kolom (Series) | Satu kolom DataFrame adalah satu Series |
| Sel, misalnya B3 | Nilai pada pasangan label baris dan nama kolom | Diakses dengan loc atau iloc |
| Rumus yang disalin ke bawah | Operasi pada seluruh kolom | nilai["nilai"] / 2 menghasilkan kolom baru tanpa menyalin rumus |
Arah pemetaan pada tabel menegaskan perbedaan utamanya. Yang berpindah dari spreadsheet ke pandas bukan hanya tempat menyimpan data, melainkan cara beroperasi, yaitu dari rumus per sel menjadi operasi per kolom. Pemetaan ini juga menentukan cara membaca error pandas, karena pesan error menyebut label baris dan nama kolom sebagai alamat, bukan huruf kolom dan nomor baris.
DataFrame pertama#
Contoh berikut membuat DataFrame kecil berisi nilai ujian empat siswa, lalu merangkum kolomnya. Siswa diberi nama netral Ali, Budi, Citra, dan Dewi, sedangkan nilai ujiannya mudah dihitung ulang secara manual. Kode disimpan sebagai berkas nilai.py dan dijalankan dengan perintah python3 nilai.py dari folder tempat berkas itu berada.
import pandas as pd
nilai = pd.DataFrame({
"nama": ["Ali", "Budi", "Citra", "Dewi"],
"nilai": [78, 85, 92, 88],
})
print(nilai)
# operasi berlaku pada seluruh kolom sekaligus
print("Rata-rata:", nilai["nilai"].mean())
print("Tertinggi:", nilai["nilai"].max()) nama nilai
0 Ali 78
1 Budi 85
2 Citra 92
3 Dewi 88
Rata-rata: 85.75
Tertinggi: 92Keluaran pertama menampilkan tabel beserta label baris 0 sampai 3 yang dibuat otomatis. Kolom nama berisi teks dan kolom nilai berisi angka, dan keduanya diakses dengan nama kolom, misalnya nilai["nilai"]. Label baris ini menyerupai nomor urut pada spreadsheet, tetapi labelnya dapat diganti menjadi nilai lain sesuai kebutuhan analisis. Metode mean() menghitung rata-rata seluruh kolom nilai sekaligus tanpa perulangan, dan max() mengembalikan nilai tertingginya. Pola inilah yang menggantikan rumus rata-rata dan pencarian nilai maksimum yang disalin baris demi baris pada spreadsheet.
Operasi ringkasan pada contoh ditujukan kepada satu kolom, yaitu nilai["nilai"], sehingga kolom nama tidak ikut terlibat. Seleksi satu kolom mengembalikan satu Series, dan metode mean() serta max() bekerja pada deretan nilai tersebut. Seleksi kolom seperti ini menjadi pola dasar pada pekerjaan analisis dengan pandas.
Menjalankan kode di notebook Jupyter#
Notebook memadukan sel teks dan sel kode dalam satu berkas, dan kode pada setiap sel dijalankan langsung dari dokumen tersebut. Notebook cocok untuk analisis data karena setiap langkah, dari pemuatan data sampai grafik, disertai penjelasan yang menyertainya. JupyterLab adalah antarmuka resmi untuk mengelola dan menjalankan notebook tersebut.
JupyterLab dijalankan dari terminal dengan perintah berikut. Perintah itu menghidupkan server lokal yang tetap hidup selama sesi berlangsung. Perintah ini tidak dijalankan pada contoh karena servernya menunggu sampai sesi dihentikan, bukan berupa demonstrasi sekali jalankan. Folder tempat perintah dijalankan menjadi folder kerja yang dibuka oleh JupyterLab.
# tidak-dijalankan
# menjalankan JupyterLab dari folder proyek
jupyter labPerintah tersebut membuka JupyterLab pada browser, kemudian notebook baru dibuat dari menu dan dijalankan dengan kernel Python, yaitu proses yang menyimpan seluruh variabel antarsel. Kode ditulis per sel dan dieksekusi secara berurutan, sehingga eksekusi dari atas ke bawah menjaga konsistensi variabel. Apabila sel dijalankan tidak berurutan, variabel dapat berada dalam keadaan yang tidak sesuai dengan isi dokumennya.
Kesalahan umum#
ModuleNotFoundError saat mengimpor pandas#
Error ModuleNotFoundError: No module named 'pandas' muncul saat pandas tidak terpasang pada Python yang sedang dijalankan. Penyebab yang paling umum adalah pip yang memasang package ke Python lain, misalnya pip milik sistem sedangkan perintah python3 menjalankan Python dari lingkungan virtual. Perintah python3 -m pip --version menampilkan Python tempat pip tersebut berada, sehingga ketidakcocokan terlihat sebelum pemasangan dilakukan. Pastikan pemasangan dan eksekusi menggunakan Python yang sama dengan perintah python3 -m pip install pandas, sehingga package terpasang tepat pada Python yang dipanggil oleh python3.
Kernel notebook berbeda dari lingkungan pemasangan#
Apabila pandas terpasang melalui terminal tetapi notebook tetap melaporkan ModuleNotFoundError, notebook kemungkinan dijalankan dengan kernel yang berbeda dari lingkungan terminal tersebut. Kernel aktif ditampilkan oleh JupyterLab di sisi kanan atas jendela notebook, dan pilihannya dapat diganti sebelum sel dijalankan. Daftar kernel dapat diperluas dengan mendaftarkan lingkungan tertentu melalui modul ipykernel. Pastikan kernel yang dipilih berasal dari lingkungan yang sama dengan tempat pip install dijalankan, sehingga package yang terpasang benar-benar terbaca oleh notebook.
Ringkasan#
- Python dan package pendukung dipasang melalui pip, dan versinya diperiksa dengan atribut
__version__. - DataFrame adalah tabel dengan baris berlabel dan kolom bernama, sedangkan satu kolomnya berupa Series.
- Operasi pandas dinyatakan sekali per kolom dan berlaku untuk semua baris, menggantikan rumus yang disalin sel demi sel pada spreadsheet.
- Notebook Jupyter menjalankan kode per sel pada satu kernel, sehingga sel dieksekusi berurutan dari atas ke bawah.
Referensi#
- pandas documentation — PyData — Dokumentasi resmi pandas, termasuk panduan instalasi dan referensi API.
- pandas User Guide — PyData — Panduan pengguna pandas yang membahas struktur DataFrame dan operasi kolom.
- NumPy documentation — NumPy Project — Dokumentasi resmi numpy, package numerik yang ikut terpasang bersama pandas.