Penyegaran Python untuk Data

Fungsi, comprehension, dan import sebagaimana dipakai dalam pekerjaan data.

Daftar isi

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.

python fungsi_dan_comprehension.py
"""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)
text Keluaran
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, dan sns, membuat kode konsisten dengan dokumentasi resmi.
  • Pesan error dibaca dari baris terakhir, dan KeyError serta ValueError adalah temuan yang paling sering muncul pada pekerjaan data.

Referensi#