Penyiapan Lingkungan

Instalasi pandas, konvensi impor pd, Jupyter, dan penyiapan dataset latihan lokal.

Daftar isi

Lingkungan kerja pandas terdiri atas pandas itu sendiri, dua pustaka pendamping, dan tempat menulis kode. Topik ini membahas instalasi paket, pemeriksaan versi, konvensi impor pd, peran Jupyter pada eksplorasi, dan pembuatan dataset latihan lokal. Dataset log sensor tiga ruangan yang dibuat pada bagian akhir menjadi bahan latihan bersama untuk seluruh modul pada jalur ini.

Instalasi pandas dan pendampingnya#

pandas diinstal bersama pyarrow sebagai pustaka tipe data modern dan openpyxl sebagai pembaca berkas Excel. Instalasi dilakukan melalui pip, yaitu pengelola paket bawaan Python. Jalankan perintah berikut pada terminal.

bash
# instalasi pandas beserta pustaka pendampingnya
pip install pandas pyarrow openpyxl
text Keluaran
Requirement already satisfied: pandas in /home/kal/.venv/lib/python3.12/site-packages (3.1.0)
Requirement already satisfied: pyarrow in /home/kal/.venv/lib/python3.12/site-packages (26.0.0)
Requirement already satisfied: openpyxl in /home/kal/.venv/lib/python3.12/site-packages (3.1.5)
Requirement already satisfied: numpy>=2.0.2 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2.1.3)
Requirement already satisfied: python-dateutil>=2.9.0 in /home/kal/.venv/lib/python3.12/site-packages (from pandas) (2.9.0.post0)
Requirement already satisfied: et-xmlfile in /home/kal/.venv/lib/python3.12/site-packages (from openpyxl) (2.0.0)
Requirement already satisfied: six>=1.5 in /home/kal/.venv/lib/python3.12/site-packages (from python-dateutil>=2.9.0->pandas) (1.17.0)

Keluaran di atas berasal dari lingkungan tempat seluruh contoh jalur ini dijalankan. Paket sudah terpasang, sehingga pip hanya melaporkan Requirement already satisfied beserta lokasi dan versinya. Pada komputer yang masih kosong, pip mengunduh paket yang sama dari repositori PyPI lalu memasangnya beserta ketergantungannya, seperti numpy dan python-dateutil yang tampak pada barisnya sendiri.

Paket pyarrow dipasang karena dtype string bawaan pandas 3 menggunakannya sebagai penyimpan di belakang layar, dan format Parquet pada modul Basis Data dan Parquet bergantung padanya. openpyxl dibutuhkan oleh read_excel pada modul Berkas Excel. Versi yang terpasang diperiksa setelah instalasi.

bash
# versi pandas yang terpasang
python3 -c "import pandas; print(pandas.__version__)"
# versi pyarrow dan openpyxl
python3 -c "import pyarrow, openpyxl; print(pyarrow.__version__, openpyxl.__version__)"
text Keluaran
3.1.0
26.0.0 3.1.5

Jalur ini ditulis untuk pandas 3.x, dan dua perubahan besarnya memengaruhi seluruh contoh. Mekanisme Copy-on-Write selalu aktif, dan kolom teks menggunakan dtype str khusus sebagai ganti object. Apabila versi yang terpasang masih 2.x, sebagian keluaran contoh pada jalur ini akan berbeda, sehingga pemutakhiran ke 3.x sebaiknya dilakukan lebih dahulu.

Konvensi impor pd#

Seluruh dokumentasi resmi pandas mengimpor paketnya dengan alias pd, dan konvensi ini diikuti hampir seluruh tutorial, buku, serta kode produksi. Alias pd bukan keharusan bahasa Python, melainkan kesepakatan komunitas yang sudah mapan sejak awal pandas.

python Contoh: konvensi impor pd
import pandas as pd

print(pd.__version__)
print(pd.Series([24.0, 24.4]).mean())
text Keluaran
3.1.0
24.2

Menulis import pandas as pd membuat setiap contoh dari dokumentasi resmi dapat dijalankan tanpa penyuntingan, sedangkan impor tanpa alias menuntut penggantian pd menjadi pandas pada setiap barisnya. Konvensi serupa berlaku untuk numpy yang diimpor sebagai np, dan kedua alias ini digunakan secara konsisten pada seluruh modul jalur ini. Pernyataan impor diletakkan di bagian atas berkas agar ketergantungan setiap skrip terbaca sekali pandang.

Jupyter untuk eksplorasi#

Jupyter menyediakan antarmuka berbasis sel (cell) yang mengeksekusi kode satu bagian pada satu waktu dan menampilkan keluarannya di bawah sel itu. Cara kerja tersebut cocok untuk tahap eksplorasi data. Dataset yang baru dimuat dapat diperiksa sel demi sel melalui head, describe, atau grafik sementara tanpa menulis ulang seluruh skrip, dan keluaran setiap sel tersimpan di dalam notebook sehingga jejak analisisnya ikut terdokumentasi. JupyterLab merupakan antarmuka Jupyter generasi baru yang berjalan di browser dan menata tabel, grafik, serta teks pada satu halaman kerja.

Instalasi JupyterLab tidak dijalankan pada contoh ini karena ukuran unduhannya besar dan pemasangannya di luar kebutuhan lingkungan contoh. Perintah berikut dijalankan pada komputer sendiri apabila lingkungan eksplorasi interaktif diinginkan.

bash
# tidak-dijalankan
# instalasi JupyterLab pada komputer masing-masing
pip install jupyterlab
# menjalankan server JupyterLab dan membukanya di browser
jupyter lab

Kode pandas yang ditulis di Jupyter dan di skrip .py identik, karena yang berbeda hanyalah pembungkus eksekusinya. Untuk analisis yang dijalankan berulang kali, misalnya pipeline harian, skrip Python biasa lebih tepat karena dapat dijadwalkan dan diuji tanpa membuka browser. Kombinasi yang lazim adalah Jupyter untuk merancang langkah analisis, lalu hasil rancangannya dipindahkan ke skrip pada saat analisisnya sudah stabil.

Dataset latihan jalur ini#

Seluruh modul pada jalur ini menggunakan satu dataset latihan yang sama, yaitu log sensor suhu dan kelembapan tiga ruangan yang dibuat oleh skrip buat_data.py. Dataset ini dibuat secara sintetis agar setiap pembaca memperoleh angka yang sama persis. Generatornya menggunakan penentu acak (seed) bernilai 42, sehingga deretan angka yang dihasilkan selalu identik pada setiap eksekusi. Jumlah barisnya 96, yaitu pembacaan setiap 15 menit dimulai dari pukul 07.00 pada tanggal 2026-01-05. Kekotoran juga ditambahkan secara deterministik, yaitu sekitar lima persen nilai suhu_c disetel menjadi NaN untuk melatih penanganan data hilang.

Simpan skrip berikut sebagai buat_data.py pada folder kerja.

python buat_data.py
"""Membuat dataset latihan log sensor untuk seluruh jalur pandas."""
import numpy as np
import pandas as pd

rng = np.random.default_rng(42)
n = 96
df = pd.DataFrame({
    "waktu": pd.date_range("2026-01-05 07:00", periods=n, freq="15min"),
    "ruang": rng.choice(["Lab A", "Lab B", "Ruang Arsip"], n, p=[0.4, 0.35, 0.25]),
    "suhu_c": np.round(rng.normal(24, 1.5, n), 1),
    "lembap_pct": np.round(rng.normal(60, 5, n), 1),
    "status_sensor": rng.choice(["normal", "kalibrasi", "rusak"], n, p=[0.85, 0.10, 0.05]),
})
# kekotoran deterministik: sekitar 5% nilai suhu_c hilang
df.loc[rng.random(n) < 0.05, "suhu_c"] = np.nan

print(df.head())
print(df.dtypes)
print(df.shape)

Jalankan skrip tersebut untuk membuat dataset dan menampilkan pratinjaunya.

bash
# membuat dataset dan menampilkan pratinjaunya
python3 buat_data.py
text Keluaran
                waktu        ruang  suhu_c  lembap_pct status_sensor
0 2026-01-05 07:00:00  Ruang Arsip     NaN        68.6        normal
1 2026-01-05 07:15:00        Lab B    21.8        59.1        normal
2 2026-01-05 07:30:00  Ruang Arsip    22.0        58.1        normal
3 2026-01-05 07:45:00        Lab B    22.5        67.3        normal
4 2026-01-05 08:00:00        Lab A    24.6        54.5        normal
waktu            datetime64[us]
ruang                       str
suhu_c                  float64
lembap_pct              float64
status_sensor               str
dtype: object
(96, 5)

Keluaran menampilkan lima baris pertama, tipe data tiap kolom, dan bentuk tabel 96 baris kali 5 kolom. Kolom waktu bertipe datetime64 karena dibuat oleh pd.date_range, kolom ruang dan status_sensor bertipe str, sedangkan dua kolom pengukuran bertipe float64. Baris pertama sudah memuat NaN pada kolom suhu_c sebagai akibat kekotoran yang disisipkan. Dataset inilah yang ditetapkan sebagai bahan contoh untuk modul Seleksi, Pembersihan, GroupBy, sampai analisis akhir pada jalur ini.

Ringkasan#

  • pandas 3.1.0 beserta pyarrow dan openpyxl dipasang melalui pip, dan versinya diperiksa melalui pd.__version__.
  • Impor mengikuti konvensi import pandas as pd yang digunakan dokumentasi resmi.
  • Jupyter mengeksekusi kode per sel dan cocok untuk eksplorasi, sedangkan skrip .py cocok untuk analisis yang dijalankan berulang.
  • Skrip buat_data.py menghasilkan dataset log sensor 96 baris secara deterministik sebagai bahan latihan seluruh modul jalur ini.

Referensi#