Pekerjaan data di Python menuntut sebagian kecil sintaks yang dipakai berulang, yaitu fungsi untuk membungkus perhitungan yang sama, comprehension untuk membangun dan membersihkan koleksi, serta import untuk memuat pustaka. Topik ini menyegarkan ketiganya dengan contoh yang dekat dengan pekerjaan data sehari-hari, bukan contoh abstrak. Setelah membacanya, pola kode yang muncul pada seluruh modul berikutnya sudah dikenal bentuknya.
Fungsi untuk perhitungan yang diulang#
Fungsi membungkus satu perhitungan menjadi nama yang dapat dipanggil ulang,
dan dua kebiasaan membuatnya berguna dalam pekerjaan data. Pertama, fungsi
yang menerima data kosong sebaiknya mengembalikan nilai yang jelas seperti
None, bukan error yang mengejutkan di tengah proses. Kedua, docstring satu
kalimat pada setiap fungsi menjelaskan apa yang dikembalikannya, sehingga
skrip yang dibuka kembali setelah sebulan masih terbaca.
"""Fungsi dan comprehension sebagaimana dipakai dalam pekerjaan data."""
def rata_rata(nilai):
"""Mengembalikan rata-rata daftar; None bila daftar kosong."""
if not nilai:
return None
return sum(nilai) / len(nilai)
suhu = [30.1, 29.4, 31.8, 28.9, 30.6]
kotor = [" 34.0 ", "41.5", "", "28.0"]
bersih = [float(s.strip()) for s in kotor if s.strip()]
label = [f"stasiun-{i}" for i in range(1, 4)]
pasangan = {nama: nilai for nama, nilai in zip(label, bersih)}
print(round(rata_rata(suhu), 2))
print(bersih)
print(pasangan)30.16
[34.0, 41.5, 28.0]
{'stasiun-1': 34.0, 'stasiun-2': 41.5, 'stasiun-3': 28.0}Keluaran tersebut memperlihatkan tiga lapisan yang sama yang akan muncul lagi pada pandas, yaitu nilai mentah yang berantakan, koleksi hasil penyaringan, dan pemetaan yang menghubungkan label dengan nilainya.
Comprehension untuk membangun dan membersihkan#
Comprehension adalah bentuk ringkas perulangan yang menghasilkan koleksi baru,
dan tiga bentuknya muncul terus pada pekerjaan data. List comprehension pada
contoh di atas memangkas spasi, mengubah teks menjadi bilangan, dan membuang
entri kosong dalam satu baris. Dict comprehension membangun pemetaan dari dua
urutan yang sejajar dengan zip. Set comprehension, yang lebih jarang, paling
sering dipakai untuk mengumpulkan nilai unik, misalnya {s for s in daftar_stasiun}.
Keterbacaan tetap menjadi batasnya. Comprehension yang bersarang dua tingkat sudah sulit diikuti, dan pada titik itu perulangan biasa dengan dua baris justru lebih baik. Aturan praktisnya sederhana, yaitu comprehension untuk satu transformasi, sedangkan logika bercabang ditulis sebagai perulangan atau fungsi.
Pola bersihkan-dengan-comprehension pada contoh di atas adalah versi mungil dari pembersihan yang nanti dikerjakan pandas. Perbedaannya hanyalah skala, yaitu satu daftar di sini berbanding satu kolom berjuta baris di sana, dan konsepnya persis sama, yaitu terapkan satu fungsi ke setiap elemen lalu buang yang tidak sah.
Import dan pembacaan pesan error#
Pustaka dimuat dengan import, dan konvensi yang dipakai seluruh dokumentasi
resmi adalah alias yang baku, yaitu import numpy as np, import pandas as pd, import matplotlib.pyplot as plt, serta import seaborn as sns. Alias
yang sama pada setiap skrip membuat kode dari satu orang terbaca oleh orang
lain tanpa penyesuaian.
Pesan error adalah bagian kerja yang normal, dan membacanya dari bawah ke atas
adalah keterampilan yang hemat waktu. Baris terakhir menyebut jenis error,
misalnya KeyError untuk nama kolom yang tidak ada atau ValueError untuk
nilai yang tidak dapat dikonversi, sedangkan baris di atasnya menunjukkan
letaknya. Kebiasaan memperbaiki berdasarkan baris terakhir menghindari
perbaikan pada tempat yang salah.
Error yang paling sering ditemui pada pekerjaan data adalah KeyError karena
nama kolom yang berbeda satu spasi, serta ValueError saat teks yang tidak
dapat dikonversi ditemui di tengah kolom angka. Keduanya akan muncul lagi dan
dibahas dengan penangkalnya pada modul pembersihan.
Kesalahan umum#
Kesalahan pertama adalah menyalin-tempel perhitungan yang sama ke beberapa tempat alih-alih membuat fungsi. Ketika definisi berubah, hanya sebagian tempat yang diperbaiki, dan hasilnya berbeda diam-diam antar bagian analisis.
Kesalahan kedua adalah menjalankan konversi di dalam comprehension tanpa
memikirkan nilai yang gagal, misalnya membiarkan teks "abc" masuk ke
float() sehingga seluruh proses berhenti. Perlakuan terhadap nilai yang
gagal dikonversi adalah keputusan analisis, bukan hal yang dibiarkan pada
kebetulan sintaks.
Kesalahan ketiga adalah import di tengah skrip secara berulang. Import dikumpulkan di awal berkas, sehingga daftar ketergantungan terbaca sekali lihat dan urutan inisialisasi tidak mengejutkan.
Ringkasan#
- Fungsi membungkus perhitungan yang diulang, dengan docstring dan perlakuan yang jelas atas masukan kosong.
- List dan dict comprehension membangun serta membersihkan koleksi dalam satu baris, dengan batas keterbacaan satu tingkat bersarang.
- Alias import yang baku, yaitu
np,pd,plt, dansns, membuat kode konsisten dengan dokumentasi resmi. - Pesan error dibaca dari baris terakhir, dan
KeyErrorsertaValueErroradalah temuan yang paling sering muncul pada pekerjaan data.
Referensi#
- The Python Tutorial — Python documentation — rujukan resmi sintaks fungsi, comprehension, dan modul.
- Data Structures — Python documentation — penjelasan resmi list comprehension beserta contohnya.