Proyek ini mengajak kita mengolah pengukuran cuaca harian tiga kota — Bandung, Medan, dan Yogyakarta — sepanjang Januari hingga Maret 2026. Dataset dasarnya 270 baris — tiga kota dikali 90 hari — dibuat oleh skrip deterministik (np.random.default_rng(13)), dan datanya sengaja ditanami masalah yang lazim pada data sensor: tujuh baris tanggal hilang karena stasiun tidak merekam, tiga suhu maksimum 55 derajat yang melampaui batas fisik, dua baris dengan suhu minimum lebih besar dari suhu maksimum, empat curah hujan negatif, sepuluh kelembapan kosong, dan lima baris duplikat. Empat bagian berurutan membawa dataset itu dari berkas mentah menjadi ringkasan siap lapor:
- Bagian 1: Membaca Data Cuaca — memuat CSV dengan
read_csv(), memetakan enam masalah lewat pemeriksaan awal, dan menjadikan kolomtanggalsebagai datetime index. - Bagian 2: Menangani Data Hilang — membuang duplikat, memperbaiki nilai yang melanggar batas fisik, melengkapi tanggal hilang dengan
asfreq(), mengisi NaN denganffill()daninterpolate(), lalu mengemas semuanya menjadi fungsimuat_bersih(). - Bagian 3: Menganalisis Pola Cuaca — rata-rata bergerak
rolling(), rekap bulananresample("ME"), hari hujan lewat boolean mask, dan hari ekstrem denganidxmax()/idxmin(). - Bagian 4: Merangkum Data Harian — ringkasan mingguan, matriks kota x bulan dengan
pivot_table(), statistik ringkas, ekspor CSV, dan narasi temuan.
Kerjakan bagian demi bagian secara berurutan: skrip buat_cuaca.py tersedia di folder tiap bagian, dan mulai Bagian 2 berkas tersebut menyediakan fungsi muat_bersih() yang dipakai ulang oleh bagian-bagian setelahnya. Proyek ini memakai konsep dari beberapa section sebelumnya: Dasar DataFrame dan Membaca dan Menulis Data untuk pemeriksaan awal, Missing Data dan Outlier Lanjutan untuk pengisian nilai, Data Waktu dan Deret Waktu untuk datetime index, resample(), dan rolling(), serta GroupBy dan Agregasi serta Menggabungkan dan Membentuk Data untuk analisis dan pivot. Berbeda dengan Proyek Analisis Penjualan yang mengolah transaksi, proyek ini menekankan sisi deret waktu: kelengkapan kalender dan kualitas pengukuran menjadi cerita utamanya.
Memuat CSV cuaca harian tiga kota, memeriksa struktur dan masalah kualitasnya, lalu menjadikan kolom tanggal sebagai datetime index.
Buka → # Bagian 2: Menangani Data HilangMembuang duplikat, memperbaiki nilai yang melanggar batas fisik, melengkapi tanggal hilang dengan asfreq, dan mengisi NaN dengan ffill serta interpolate.
Buka → # Bagian 3: Menganalisis Pola CuacaMembaca pola dari data bersih: rata-rata bergerak tujuh hari, rekap bulanan dengan resample, hari hujan lewat boolean mask, dan hari ekstrem dengan idxmax serta idxmin.
Buka → # Bagian 4: Merangkum Data HarianMerangkum 270 baris harian menjadi tabel mingguan, matriks kota x bulan, dan statistik ringkas, lalu mengekspor berkas ringkasan beserta narasi temuan.
Buka →