0% Selesai

Pengenalan Struktur Data Pandas (Series & DataFrame)

20 Menit•Pembaruan: 8 Sep 2026
Asisten AI ModulTanyakan materi, ringkasan, atau penjelasan kode bab ini langsung ke AI

Pengenalan Struktur Data Pandas (Series & DataFrame)

19 Sel • Python 3 (WebAssembly Kernel)

Pengenalan Struktur Data Pandas (Series & DataFrame)

Di dunia analisis data dan sains data, ada satu pustaka yang paling sering digunakan setiap hari: Pandas.

Mungkin Anda bertanya:

"Kalau cuma mengolah data tabel, kenapa kita tidak pakai Microsoft Excel atau database SQL saja?"

Masing-masing alat punya keunggulan, tetapi juga memiliki batasan:

  • Microsoft Excel sangat nyaman untuk melihat data secara visual, tetapi terbatas maksimal sekitar 1 juta baris. Jika file Anda berisi puluhan juta transaksi atau formula rumit, Excel akan sangat lambat bahkan crash. Selain itu, alur kerja di Excel sulit diautomasi secara mandiri dalam pipeline sistem.
  • SQL sangat andal untuk menyimpan dan mengambil data dari database relasional, tetapi kurang fleksibel untuk transformasi data yang rumit, pembersihan teks yang kotor, rekayasa fitur (feature engineering), dan pemodelan statistik.

Pandas hadir menggabungkan keunggulan keduanya:

Ia memberikan kemudahan memanipulasi tabel seperti di Excel, kecepatan pemfilteran data seperti di SQL, dan fleksibilitas tanpa batas dari bahasa pemrograman Python. Dengan Pandas, kita bisa memuat jutaan data dalam sekejap, membersihkan data yang hilang, menggabungkan tabel, hingga menghitung statistik kompleks hanya dengan beberapa baris kode.

1. Memasang Pustaka Pandas

Pastikan pustaka Pandas sudah terpasang di lingkungan Python Anda sebelum digunakan:

In [3]:python
Out [3]:
Requirement already satisfied: pandas in c:\laragon\bin\python\python-3.10\lib\site-packages (2.3.1)
Requirement already satisfied: tzdata>=2022.7 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: numpy>=1.22.4 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2.2.6)
Requirement already satisfied: pytz>=2020.1 in c:\laragon\bin\python\python-3.10\lib\site-packages (from pandas) (2025.2)
Requirement already satisfied: six>=1.5 in c:\laragon\bin\python\python-3.10\lib\site-packages (from python-dateutil>=2.8.2->pandas) (1.17.0)

[notice] A new release of pip available: 22.2.2 -> 26.2.1
[notice] To update, run: python.exe -m pip install --upgrade pip

2. Pandas Series: Struktur Data 1 Dimensi Berlabel

Di Pandas ada dua struktur data utama: Series dan DataFrame.

Series adalah array satu dimensi yang memiliki label penunjuk (index). Kalau di list biasa Anda hanya bisa memanggil data lewat angka 0, 1, 2, pada Series Anda bisa memberikan nama indeks sesuka hati (misalnya nama kota, tanggal, atau kode barang).

In [5]:python
Out [5]:
=== Data Series Populasi ===
Jakarta     10.56
Surabaya     2.93
Bekasi       2.51
Bandung      1.83
Name: Populasi (Juta Jiwa), dtype: float64

Populasi Surabaya : 2.93 juta jiwa
Rata-rata Populasi: 4.46 juta jiwa

3. Pandas DataFrame: Struktur Tabel 2 Dimensi

Jika Anda menggabungkan beberapa Series berdampingan, Anda akan mendapatkan DataFrame—yaitu representasi tabel dua dimensi lengkap dengan baris (rows) dan kolom (columns), persis seperti lembar kerja spreadsheet Excel.

Cara termudah membuat DataFrame adalah menggunakan struktur Dictionary Python, di mana key menjadi nama kolom dan value (list) menjadi data isinya:

In [7]:python
Out [7]:
=== Tabel Data Karyawan ===
    Nama       Divisi  Gaji_Juta  Pengalaman_Tahun
0   Andi  Engineering       15.5                 3
1   Budi         Data       18.0                 5
2  Citra         Data       16.5                 4
3   Dewi       Design       12.0                 2
4    Eko  Engineering       14.0                 3
5   Fani    Marketing       11.5                 1

4. Inspeksi Cepat: Mengenal Bentuk dan Kesehatan Data

Saat pertama kali menerima file data dari rekan kerja atau database, jangan langsung melakukan perhitungan. Lakukan inspeksi awal terlebih dahulu menggunakan 4 fungsi andalan ini:

  • df.head(n): Melihat n baris data teratas.
  • df.shape: Mengetahui ukuran tabel (total baris, total kolom).
  • df.info(): Memeriksa tipe data setiap kolom dan mendeteksi apakah ada data yang bolong/kosong.
  • df.describe(): Ringkasan statistik otomatis (rata-rata, standar deviasi, nilai minimum, kuartil, dan maksimum).
In [9]:python
Out [9]:
Ukuran tabel (baris, kolom): (6, 4)

3 Baris Pertama (head):
     Nama       Divisi  Gaji_Juta  Pengalaman_Tahun
0   Andi  Engineering       15.5                 3
1   Budi         Data       18.0                 5
2  Citra         Data       16.5                 4

Ringkasan Statistik Deskriptif:
        Gaji_Juta  Pengalaman_Tahun
count   6.000000          6.000000
mean   14.583333          3.000000
std     2.557668          1.414214
min    11.500000          1.000000
25%    12.500000          2.250000
50%    14.750000          3.000000
75%    16.250000          3.750000
max    18.000000          5.000000

5. Memilih Data: Memahami Perbedaan .loc vs .iloc

Ini adalah materi yang paling sering membingungkan pemula saat belajar Pandas. Bagaimana cara mengambil baris dan kolom tertentu?

Kuncinya adalah mengingat dua method berikut:

  1. .loc (Label-based): Mengambil data berdasarkan nama label teks (nama kolom atau nama indeks).
  2. .iloc (Integer-based): Mengambil data murni berdasarkan posisi nomor indeks angka (dimulai dari 0, 1, 2, ...).
In [11]:python
Out [11]:
Menggunakan .loc (berdasarkan nama kolom):
Nama         Andi
Gaji_Juta    15.5
Name: 0, dtype: object

Menggunakan .iloc (baris 0 s.d 1, kolom 0 s.d 1):
   Nama       Divisi
0  Andi  Engineering
1  Budi         Data

6. Menyaring Data (Filtering & Boolean Indexing Multi-Kondisi)

Sering kali kita ingin menyaring data berdasarkan satu atau beberapa kriteria sekaligus, mirip seperti perintah WHERE di SQL.

Aturan penulisan kondisi di Pandas:

  • Gunakan tanda kurung (kondisi_1) & (kondisi_2) untuk logika AND (keduanya harus terpenuhi).
  • Gunakan tanda kurung (kondisi_1) | (kondisi_2) untuk logika OR (salah satu terpenuhi).
In [13]:python
Out [13]:
Karyawan dengan Gaji > 15 Juta:
    Nama       Divisi  Gaji_Juta
0   Andi  Engineering       15.5
1   Budi         Data       18.0
2  Citra         Data       16.5

Karyawan Divisi Data Senior (Pengalaman >= 4 tahun):
    Nama  Pengalaman_Tahun  Gaji_Juta
1   Budi                 5       18.0
2  Citra                 4       16.5

7. Menambah dan Memodifikasi Kolom

Di dunia nyata, kita sering perlu membuat kolom baru hasil perhitungan matematis (misalnya menghitung bonus tahunan atau konversi mata uang):

In [15]:python
Out [15]:
Tabel Karyawan setelah penambahan kolom kompensasi:
    Nama       Divisi  Gaji_Juta  Bonus_Akhir_Tahun  Total_Tahunan
0   Andi  Engineering       15.5              23.25         209.25
1   Budi         Data       18.0              27.00         243.00
2  Citra         Data       16.5              24.75         222.75
3   Dewi       Design       12.0              18.00         162.00
4    Eko  Engineering       14.0              21.00         189.00
5   Fani    Marketing       11.5              17.25         155.25

8. Menangani Data Kosong (Missing Values / NaN)

Hampir tidak ada dataset di dunia nyata yang 100% bersih. Pasti ada baris yang nilainya kosong karena pengguna lupa mengisi form, sensor terputus, atau kesalahan sistem. Di Pandas, data kosong ditandai dengan NaN (Not a Number).

Tiga langkah menangani data kosong:

  1. Cek data kosong: df.isna().sum() menghitung berapa banyak data kosong di setiap kolom.
  2. Isi data kosong: df.fillna(nilai) mengisi data kosong dengan nilai tertentu (misalnya nilai rata-rata atau angka 0).
  3. Hapus baris kosong: df.dropna() membuang baris yang memiliki nilai kosong jika data tersebut tidak bisa diperbaiki.
In [17]:python
Out [17]:
=== Data Awal Pelanggan ===
   Nama      Kota  Usia  Skor_Kepuasan
0  Rian   Jakarta  28.0            4.5
1  Siti  Surabaya   NaN            4.8
2  Agus       NaN  35.0            4.2
3  Lina   Bandung  24.0            NaN
4  Doni   Jakarta  31.0            4.6

Jumlah data kosong per kolom:
 Nama             0
Kota             1
Usia             1
Skor_Kepuasan    1
dtype: int64

=== Data Setelah Dibersihkan ===
   Nama             Kota  Usia  Skor_Kepuasan
0  Rian          Jakarta  28.0            4.5
1  Siti         Surabaya  30.0            4.8
2  Agus  Tidak Diketahui  35.0            4.2
3  Lina          Bandung  24.0            NaN
4  Doni          Jakarta  31.0            4.6

9. Studi Kasus: Analisis Penjualan & Inventaris Toko Retail

Mari kita terapkan kemampuan Pandas untuk menganalisis data inventaris produk e-commerce.

Pertanyaan bisnis yang ingin dijawab oleh manajemen:

  1. Berapa total omset potensial (Harga dikali Stok Terjual) untuk setiap produk?
  2. Kategori produk mana yang menyumbang pendapatan total tertinggi?
  3. Produk apa saja yang terjual lebih dari 25 unit dan memiliki rating kepuasan di atas 4.5?
In [19]:python
Out [19]:
=== Tabel Penjualan Produk Toko ===
                Produk   Kategori  Terjual  Total_Omset_Juta
0          Laptop Asus   Komputer       14            119.00
1       Mouse Logitech  Aksesoris       85             12.75
2  Keyboard Mechanical  Aksesoris       40             18.00
3           Monitor LG   Komputer       20             44.00
4         Headset Sony      Audio       28             33.60
5         Webcam Razer  Aksesoris       32             25.60

=== Peringkat Pendapatan per Kategori (Juta Rupiah) ===
Kategori
Komputer     163.00
Aksesoris     56.35
Audio         33.60
Name: Total_Omset_Juta, dtype: float64

=== Produk Terlaris dengan Rating Tinggi (>= 4.5) ===
                Produk   Kategori  Terjual  Rating
1       Mouse Logitech  Aksesoris       85     4.5
2  Keyboard Mechanical  Aksesoris       40     4.7
Progres PembelajaranTandai modul ini selesai setelah Anda memahami teori dan mempraktikkan kode.