Belajar Data Analyst - Python untuk Analisis (pandas)
Episode 6 of 28

Belajar Data Analyst - Python untuk Analisis (pandas)

Episode ini memperkenalkan Python sebagai pisau bedah analis: DataFrame pandas, filtering & selection, groupby untuk agregasi, peran NumPy, dan workflow di Jupyter, ditutup dengan praktik EDA (exploratory data analysis) pertama yang lengkap dari dataset penjualan

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 5 kalian punya lensa statistika, sekarang saatnya mengambil pisau bedahnya: Python. SQL hebat untuk menarik dan merangkum data, tetapi Python membuka pintu yang tidak bisa dibuka SQL — cleaning yang fleksibel, transformasi kompleks, statistika lanjutan, dan visualisasi. Di dunia kerja, analis yang hanya bisa SQL dan analis yang bisa SQL+Python bekerja di dua level yang berbeda.

Episode ini membangun fondasi pandas — library Python untuk data tabular — plus NumPy dan Jupyter. Targetnya jelas: kalian bisa melakukan eksplorasi data (EDA) sederhana dari nol di akhir episode. Konsep di sini menjadi dasar untuk episode 7 (cleaning) sampai 9 (visualisasi).

Mengenal DataFrame: Tabel ala Python

DataFrame adalah struktur inti pandas: seperti tabel/spreadsheet — punya baris dan kolom bernama. Kalian bisa membuatnya dari file CSV, database, atau secara langsung:

PythonMembuat DataFrame pertama
import pandas as pd
 
df = pd.DataFrame({
    "nama":   ["Budi", "Sari", "Andi", "Dewi"],
    "kota":   ["Jakarta", "Bandung", "Jakarta", "Surabaya"],
    "revenue":[150, 25, 12, 45],
})
df.head()
PythonMembaca dari CSV
df = pd.read_csv("orders.csv")
df.shape        # (baris, kolom)
df.info()       # ringkasan tipe data per kolom
df.describe()   # ringkasan statistika numerik

Tiga perintah di atas (shape, info, describe) adalah pembuka EDA standar yang akan kalian pakai terus-menerus.

Note

Wajib bedakan dua dimensi data: baris adalah observasi (satu order, satu customer), kolom adalah variabel (amount, status, tanggal). Hampir semua error analisis berakar dari tertukarnya dua konsep ini.

Filtering dan Selection

Memilih kolom dan menyaring baris dengan kondisi:

PythonFiltering dasar
import pandas as pd
 
df = pd.read_csv("orders.csv")
 
df["amount"]                                  # satu kolom → Series
df[["product", "amount"]]                     # beberapa kolom → DataFrame
completed = df[df["status"] == "completed"]   # filter baris
besar = df[(df["amount"] > 1000000) & (df["status"] == "completed")]

Perhatikan dua hal: kondisi ganda memakai & (bukan and) dan setiap kondisi dibungkus tanda kurung. Kesalahan paling umum pemula pandas justru di sini.

Untuk menangani NaN dan memilih berdasarkan posisi:

PythonFilter NaN dan pemilihan posisi
df[df["amount"].notna()]      # baris tanpa nilai hilang
df[df["city"].isin(["Jakarta", "Bandung"])]
df.iloc[0:5]                  # 5 baris pertama berdasarkan posisi

Groupby: SQL GROUP BY ala Python

groupby mengelompokkan baris lalu menerapkan agregasi — padanan persis GROUP BY SQL:

PythonAgregasi per kolom kategorikal
df.groupby("product")["amount"].sum().sort_values(ascending=False)
PythonMultiple agregasi sekaligus
df.groupby("product").agg(
    total=("amount", "sum"),
    jumlah=("amount", "count"),
    rata_rata=("amount", "mean"),
)

Contoh kedua menampilkan gaya modern pandas (agg dengan nama kolom hasil). Hasilnya DataFrame rapi yang siap divisualisasi — inilah bentuk "ringkasan" yang akan kalian bawa ke dashboard.

NumPy: Mesin Angka di Belakang Pandas

pandas dibangun di atas NumPy — pustaka array multidimensi dengan operasi matematika cepat. Kalian akan sering bertemu dengannya untuk kalkulasi element-wise:

PythonOperasi NumPy
import numpy as np
 
orders = np.array([150, 25, 12, 45])
print(orders * 1.1)          # naik 10% semua elemen
print(orders.mean())         # rata-rata
print(np.percentile(orders, [25, 50, 75]))  # kuartil

Anda tidak perlu menguasai NumPy sedalam engineer — yang penting paham bahwa operasi vektor berjalan cepat dan pandas memakainya di bawah kap.

Jupyter: Kertas Coret Analis

Jupyter memungkinkan kode berjalan per-sel, dengan hasil (termasuk grafik) langsung tampil di bawah kode. Alur kerja analis biasanya:

  1. Sel eksplorasi: df.head(), df.info() — mengenal data.
  2. Sel analisis: filtering, groupby, statistik.
  3. Sel visualisasi: plot matplotlib/seaborn (episode 9).
Menjalankan Jupyter
jupyter notebook

Tulis setiap langkah sebagai sel terpisah. Jupyter adalah tempat bekerja, bukan tempat berhasil — notebook pertama kalian boleh berantakan, asalkan alurnya bisa diikuti.

Praktik: EDA Lengkap Pertama

Gabungkan semua konsep dalam satu alur EDA pada dataset penjualan:

PythonEDA sederhana lengkap
import pandas as pd
 
df = pd.read_csv("orders.csv")
 
# 1. Struktur dan tipe data
print(df.shape)
print(df.info())
 
# 2. Ringkasan numerik
print(df.describe())
 
# 3. Cek nilai hilang per kolom
print(df.isna().sum())
 
# 4. Cek duplikat
print("duplikat:", df.duplicated().sum())
 
# 5. Revenue per produk (top 5)
print(df.groupby("product")["amount"].sum().sort_values(ascending=False).head(5))
 
# 6. Status order
print(df["status"].value_counts())

Tujuh langkah kecil ini sudah menghasilkan gambaran besar: ukuran data, kualitas data (nilai hilang & duplikat), pemain terbesar, dan kesehatan operasional. Inilah kerangka EDA yang akan kalian sempurnakan di episode 8.

Kesalahan Umum

  • Memakai and/or alih-alih &/| saat filtering — error klasik pandas.
  • groupby tanpa memilih kolom — hasilnya agregasi semua kolom numerik, sering kali bukan yang diinginkan.
  • Mengabaikan inplace dan chaining. Pandas umumnya mengembalikan DataFrame baru; selalu simpan hasilnya ke variabel.
  • Melompati info() dan isna(). Memulai analisis tanpa tahu tipe data dan nilai hilang = membangun di atas pasir.

Penutup

Inti yang harus dibawa pulang:

  • DataFrame adalah tabel Python: baris = observasi, kolom = variabel.
  • Filtering memakai &/| dengan kondisi dalam kurung; iloc untuk posisi.
  • groupby + agg adalah padanan SQL GROUP BY yang fleksibel.
  • EDA pembuka standar: shape, info, describe, isna, duplicated, value_counts.

Di episode 7 selanjutnya kita masuk ke topik yang memakan 60-80% waktu analis: Data Cleaning & Preparation — menangani missing values, duplikat, outlier, tipe data yang salah, dan normalisasi pada dataset yang kotor. Pisau bedah Python sudah di tangan; sekarang kita belajar membersihkan medan perangnya!

Belajar Data Analyst - Python untuk Analisis (pandas) | Belajar Data Analyst