Penyiapan perangkat

Memasang Python, pandas, dan Jupyter, serta menghubungkan kebiasaan spreadsheet dengan cara kerja pandas.

Daftar isi

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.

bash
# memeriksa versi Python yang sudah terpasang
python3 --version
text Keluaran
Python 3.12.16

Versi 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.

bash
# tidak-dijalankan
# memasang pandas beserta dependensinya
pip install pandas

# memasang JupyterLab untuk notebook
pip install jupyterlab

Perintah 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.

python
import pandas
print(pandas.__version__)
text Keluaran
2.2.3
python
import numpy
print(numpy.__version__)
text Keluaran
2.1.3

Angka 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.

bash
# memeriksa komponen Jupyter yang terpasang
jupyter --version
text Keluaran
Selected 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.3

Keluaran 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 spreadsheetPadanan di pandasCatatan
Lembar kerja (sheet)DataFrameSatu tabel dengan baris berlabel dan kolom bernama
BarisBaris berlabel (index)Label bawaan berupa 0, 1, 2, dan seterusnya
KolomKolom (Series)Satu kolom DataFrame adalah satu Series
Sel, misalnya B3Nilai pada pasangan label baris dan nama kolomDiakses dengan loc atau iloc
Rumus yang disalin ke bawahOperasi pada seluruh kolomnilai["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.

python nilai.py
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())
text Keluaran
    nama  nilai
0    Ali     78
1   Budi     85
2  Citra     92
3   Dewi     88
Rata-rata: 85.75
Tertinggi: 92

Keluaran 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.

bash
# tidak-dijalankan
# menjalankan JupyterLab dari folder proyek
jupyter lab

Perintah 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#