Pandas adalah library Python yang menjadi standar industri untuk analisis data. Pada Course ini, kita belajar pandas secara bertahap: dimulai dari dua struktur data intinya, Series dan DataFrame, lalu maju ke pembacaan data dari berbagai format, pembersihan data, agregasi, penggabungan tabel, data waktu, hingga enam proyek analisis data utuh. Semua contoh kode ditulis dan diuji pada pandas 3.0, sehingga yang kita pelajari mencerminkan perilaku terbaru library ini.
Bab 1 Pengenalan Pandas
Mengenal pandas sebagai library analisis data Python: definisi, sejarah singkat, dan alasan library ini menjadi standar industri.
Buka → # Kegunaan PandasMenjelajahi bidang penerapan pandas: analisis data, data cleaning, pelaporan, dan persiapan data untuk machine learning.
Buka → # Pandas vs NumPyMembandingkan pandas dan NumPy: perbedaan struktur data, tipe data, dan kapan masing-masing lebih tepat dipakai.
Buka → # Pandas untuk Pengguna SQLMemetakan query SQL seperti SELECT, WHERE, dan JOIN ke operasi pandas yang setara.
Buka → # Pandas untuk Pengguna SpreadsheetMemetakan kebiasaan spreadsheet seperti VLOOKUP dan Pivot Table ke operasi pandas yang setara.
Buka → # Pandas dalam Ekosistem PythonMemetakan posisi pandas di antara NumPy, Matplotlib, scikit-learn, dan library data Python lainnya.
Buka → # Struktur Data Series dan DataFrameMengenal dua struktur data inti pandas: Series satu dimensi dan DataFrame dua dimensi beserta komponennya.
Buka → # Kapan Menggunakan PandasMenilai kapan pandas adalah alat yang tepat dan kapan lebih baik memakai Python murni, NumPy, atau SQL.
Buka →Bab 2 Persiapan Lingkungan
Menyiapkan Python 3.12 sebagai prasyarat pandas di Windows, macOS, dan Linux.
Buka → # Membuat Virtual EnvironmentMengisolasi dependensi proyek dengan modul venv agar instalasi pandas tidak mengganggu proyek lain.
Buka → # Instalasi PandasMemasang pandas dengan pip beserta dependensinya dan memverifikasi hasil instalasi.
Buka → # Instalasi NumPyMemasang NumPy sebagai fondasi numerik pandas dan memahami hubungan keduanya.
Buka → # Menggunakan Python InterpreterMenguji kode pandas cepat lewat REPL Python sebelum menulisnya ke file skrip.
Buka → # Menggunakan Jupyter NotebookMenyiapkan Jupyter Notebook sebagai lingkungan eksplorasi data interaktif.
Buka → # Memeriksa Versi PandasMemeriksa versi pandas, NumPy, dan dependensi lain untuk memastikan lingkungan kerja konsisten.
Buka →Bab 3 Dasar Series
Mengenal Series sebagai array satu dimensi berlabel yang menjadi blok dasar DataFrame.
Buka → # Membuat SeriesMembuat Series dari list, tuple, dictionary, dan nilai skalar dengan pd.Series().
Buka → # Atribut index dan valuesMemisahkan dan memahami dua komponen utama Series: label index dan array values.
Buka → # Label Index KustomMemberi label index sendiri saat membuat Series dan memahami perannya dalam pencarian data.
Buka → # Mengakses Elemen SeriesMengambil satu atau beberapa elemen Series melalui label maupun posisi integer.
Buka → # Slicing SeriesMemotong Series dengan slicing berbasis posisi dan berbasis label beserta perbedaan aturannya.
Buka → # Atribut SeriesMenjelajahi atribut bawaan Series seperti dtype, shape, size, name, dan hasnans.
Buka → # Tipe Data SeriesMemahami dtype Series: int64, float64, str baru di pandas 3.0, bool, dan datetime64.
Buka → # Operasi pada SeriesMenerapkan operasi aritmetika dan perbandingan pada Series beserta cara index menjajarkan hasil.
Buka →Bab 4 Dasar DataFrame
Mengenal DataFrame sebagai tabel dua dimensi berlabel yang tersusun dari Series-Series sejajar.
Buka → # Membuat DataFrameMembuat DataFrame dengan pd.DataFrame() dari berbagai sumber data Python.
Buka → # DataFrame dari DictionaryMembangun DataFrame dari dict of lists dan dict of Series beserta aturan panjang datanya.
Buka → # DataFrame dari List dan ArrayMembuat DataFrame dari list of lists dan array NumPy serta mengatur nama kolomnya.
Buka → # Memahami index dan columnsMembedakan sumbu index dan columns, memeriksa isinya, dan memahami peran keduanya.
Buka → # Memeriksa Struktur DataMenggunakan atribut dan method dasar untuk mengintip bentuk, tipe, dan isi DataFrame.
Buka → # head(), tail(), dan sample()Mengintip sebagian baris DataFrame dengan head(), tail(), dan sample() untuk eksplorasi cepat.
Buka → # info() dan describe()Merangkum struktur dan statistik DataFrame dengan info() dan describe().
Buka → # Atribut shape dan dtypesMembaca ukuran tabel melalui shape dan tipe tiap kolom melalui dtypes.
Buka → # Mengatur IndexMengganti index DataFrame dengan set_index() dan memilih kolom yang tepat sebagai identifier.
Buka →Bab 5 Membaca dan Menulis Data
Mengimpor file CSV ke DataFrame dengan pd.read_csv() dan mengenali perilaku default-nya.
Buka → # Menulis File CSVMengekspor DataFrame ke file CSV dengan to_csv() dan mengatur index serta encoding-nya.
Buka → # Membaca dan Menulis ExcelBekerja dengan file .xlsx menggunakan read_excel() dan to_excel() dengan engine openpyxl.
Buka → # Membaca File JSONMengimpor data JSON semi terstruktur dengan read_json() dan memahami orientasinya.
Buka → # json_normalize() untuk JSON BersarangMeratakan JSON bersarang dari API menjadi tabel datar dengan pd.json_normalize().
Buka → # Membaca File ParquetMenyimpan dan membaca format kolom Parquet yang efisien untuk data berukuran besar.
Buka → # Membaca File FeatherMenggunakan format Feather untuk pertukaran data berkecepatan tinggi antara pandas dan tools lain.
Buka → # Membaca File HTMLMenarik tabel dari halaman HTML dengan read_html() dan memahami persyaratannya.
Buka → # Membaca Data dari URLMembaca dataset langsung dari URL dan menangani ketergantungan jaringannya dengan bijak.
Buka → # Membaca Data dari SQLMengambil hasil query database ke DataFrame dengan read_sql() dan SQLAlchemy.
Buka → # Menulis Data ke SQLMenyimpan DataFrame ke tabel database dengan to_sql() dan mengatur mode penulisannya.
Buka → # Parameter Penting read_csv()Menguasai parameter read_csv() yang sering dipakai: sep, header, usecols, dtype, dan na_values.
Buka → # Memilih Format PenyimpananMembandingkan CSV, Excel, JSON, Parquet, dan Feather untuk memilih format yang sesuai kebutuhan.
Buka →Bab 6 Indexing dan Seleksi Data
Mengambil satu kolom DataFrame sebagai Series lewat akses kurung siku dan memahami konsekuensinya.
Buka → # Memilih Beberapa KolomMengambil beberapa kolom sekaligus sebagai DataFrame beserta pengaturan urutannya.
Buka → # Seleksi Baris dengan locMemilih baris berdasarkan label index dengan .loc, termasuk slicing label yang inklusif.
Buka → # Seleksi Posisi dengan ilocMemilih baris dan kolom berdasarkan posisi integer dengan .iloc.
Buka → # Slicing Baris dan KolomMenggabungkan potongan baris dan kolom dalam satu operasi .loc atau .iloc.
Buka → # Filtering dengan KondisiMenyaring baris dengan kondisi boolean seperti df[df["umur"] > 25].
Buka → # Kombinasi KondisiMenggabungkan beberapa kondisi filter dengan operator & (AND), | (OR), dan ~ (NOT).
Buka → # isin() dan between()Menyaring baris berdasarkan daftar nilai dan rentang nilai dengan isin() dan between().
Buka → # Method query()Menulis filter sebagai string ekspresi dengan query() agar kode lebih mudah dibaca.
Buka → # Boolean MaskMemahami array boolean sebagai fondasi di balik semua operasi seleksi kondisional pandas.
Buka → # Menghindari Chained IndexingMemahami mengapa chained assignment tidak lagi berfungsi di pandas 3.0 dan memakai .loc sebagai gantinya.
Buka →Bab 7 Manipulasi Data
Membentuk subset kolom dan menghapus kolom yang tidak diperlukan dengan drop().
Buka → # Menambah KolomMenambahkan kolom baru dari perhitungan, konstanta, atau Series lain.
Buka → # Mengubah Nilai SelMengubah nilai sel tertentu dengan .loc dan at() secara langsung dan aman.
Buka → # Kondisi dengan where() dan mask()Mengganti nilai secara kondisional dengan where() dan mask() tanpa membuang baris.
Buka → # Rename Kolom dan IndexMengganti nama kolom dan label index dengan rename() beserta mapping-nya.
Buka → # Menghapus Baris dan KolomMenghapus baris dan kolom dengan drop() beserta parameter axis dan columns.
Buka → # Mengurutkan DataMengurutkan DataFrame berdasarkan nilai kolom dengan sort_values().
Buka → # Mengurutkan Berdasarkan Beberapa KolomMengurutkan dengan beberapa kolom sekaligus dan arah ascending berbeda per kolom.
Buka → # Mengatur Ulang IndexMengurutkan DataFrame berdasarkan index dengan sort_index() dan memahami urutannya.
Buka → # reset_index()Mengembalikan index menjadi kolom biasa dan menomori ulang baris dengan reset_index().
Buka → # Mengubah Tipe DataMengonversi tipe kolom dengan astype() dan menangani kegagalan konversi dengan aman.
Buka → # Operasi String pada KolomMemanipulasi kolom teks melalui accessor .str seperti .str.upper() dan .str.strip().
Buka → # Menyalin dan Memodifikasi DataMemahami kapan data tersalin di era Copy-on-Write dan kapan .copy() benar-benar dibutuhkan.
Buka →Bab 8 Data Cleaning
Memetakan masalah data umum: nilai kosong, duplikat, tipe salah, dan inkonsistensi label.
Buka → # Missing ValuesMemahami NaN sebagai penanda nilai kosong dan bagaimana pandas 3.0 menanganinya di tiap dtype.
Buka → # Mendeteksi Nilai KosongMemakai isna(), notna(), dan kombinasi dengan sum() untuk menghitung nilai kosong per kolom.
Buka → # Menghapus Nilai KosongMembersihkan baris atau kolom dengan dropna() beserta parameter how dan subset.
Buka → # Mengisi Nilai KosongMengganti NaN dengan nilai tertentu, mean/median, atau ffill/bfill melalui fillna().
Buka → # Menangani Nilai DuplikatMendeteksi dan menghapus duplikat dengan duplicated() dan drop_duplicates().
Buka → # Memperbaiki Tipe DataMemperbaiki kolom yang terbaca dengan tipe salah, misalnya angka yang tersimpan sebagai teks.
Buka → # Membersihkan TeksMenormalkan teks dengan .str.strip(), .str.lower(), dan penghapusan karakter tak diinginkan.
Buka → # Standardisasi Label KategoriMenyatukan label yang berbeda ejaan, misalnya "Jakarta", "JAKARTA", dan " jakarta ".
Buka → # Mendeteksi OutlierMengenali nilai ekstrem dengan statistik deskriptif sebelum memutuskan penanganannya.
Buka → # Menangani Nilai Tidak ValidMengoreksi nilai di luar logika domain, seperti umur negatif atau persentase di atas 100.
Buka → # Validasi Rentang NilaiMemeriksa kolom numerik terhadap rentang yang wajar menggunakan boolean mask.
Buka → # Membuat Laporan Kualitas DataMerangkum kondisi data sebelum dan sesudah pembersihan menjadi laporan ringkas yang terukur.
Buka →Bab 9 Operasi Aritmetika dan Statistika
Menjalankan penjumlahan, pengurangan, perkalian, dan pembagian pada Series dan DataFrame.
Buka → # Operasi Antar KolomMenghitung kolom baru dari kombinasi kolom lain, misalnya total = harga dikali jumlah.
Buka → # sum(), mean(), dan median()Menghitung agregat dasar per kolom dan memahami penanganan NaN oleh masing-masing method.
Buka → # min(), max(), dan count()Menemukan nilai terkecil, terbesar, dan jumlah data yang tidak kosong per kolom.
Buka → # Variance dan Standard DeviationMengukur sebaran data dengan var() dan std() beserta makna parameter ddof-nya.
Buka → # Quantile dan PercentileMemotong distribusi data dengan quantile() dan menghubungkannya dengan median serta IQR.
Buka → # Peringkat dan Top-NMenyusun peringkat dengan rank() dan mengambil nilai teratas atau terbawah dengan nlargest() dan nsmallest().
Buka → # Korelasi Antar KolomMengukur hubungan linear antar kolom dengan corr() dan membaca nilai korelasinya.
Buka → # CovarianceMenghitung kovarians dengan cov() dan membedakannya dari korelasi.
Buka → # Operasi Berdasarkan axisMengontrol arah agregasi dengan axis=0 untuk per kolom dan axis=1 untuk per baris.
Buka → # Operasi KumulatifMenghitung nilai berjalan dengan cumsum(), cummax(), dan cummin().
Buka → # value_counts()Menghitung frekuensi nilai unik pada sebuah kolom, termasuk parameter normalize dan dropna.
Buka → # Statistik DeskriptifMerangkum distribusi data numerik dan kategorikal dengan describe() dalam sekali panggil.
Buka →Bab 10 Transformasi Data
Menerapkan fungsi kustom ke Series dan DataFrame dengan apply().
Buka → # map() dan replace()Memetakan nilai ke nilai lain dengan map() dan mengganti nilai tertentu dengan replace().
Buka → # Method assign()Menambah kolom baru secara berantai (method chaining) tanpa mengubah DataFrame asli.
Buka → # Method pipe()Merangkai fungsi transformasi besar menjadi pipeline yang mudah dibaca dengan pipe().
Buka → # transform() vs aggregate()Membedakan transform() yang mempertahankan bentuk data dan aggregate() yang meringkasnya.
Buka → # apply() dengan axisMengoper fungsi per baris dengan axis=1 dan per kolom dengan axis=0 pada apply().
Buka → # Fungsi Lambda pada DataFrameMenulis transformasi ringkas satu baris dengan lambda di apply(), assign(), dan map().
Buka → # Transformasi KategoriMengubah nilai teks menjadi kategori terkelola dan memetakan label lama ke label baru.
Buka → # Binning dengan cut()Membagi data numerik kontinu ke dalam bin berdasarkan rentang nilai dengan pd.cut().
Buka → # Quantile Binning dengan qcut()Membagi data ke dalam bin berdasarkan kuantil sehingga isi tiap bin seimbang.
Buka → # One-Hot EncodingMengubah kolom kategori menjadi kolom biner dengan pd.get_dummies().
Buka → # Encode Label dengan factorize()Mengubah label teks menjadi kode numerik dengan factorize() sebagai alternatif one-hot encoding.
Buka → # Normalisasi dan StandardisasiMenyekalakan data numerik dengan min-max normalization dan z-score standardization.
Buka →Bab 11 GroupBy dan Agregasi
Memahami tiga tahap groupby: memecah data, menerapkan fungsi, dan menggabungkan hasil.
Buka → # GroupBy Satu KolomMengelompokkan data berdasarkan satu kolom dan menghitung agregat per kelompok.
Buka → # GroupBy Beberapa KolomMengelompokkan data berdasarkan beberapa kolom sekaligus dan membaca MultiIndex hasilnya.
Buka → # Fungsi Agregasi BawaanMenggunakan fungsi agregasi bawaan seperti sum, mean, count, min, dan max pada groupby.
Buka → # agg() dengan Beberapa FungsiMenerapkan beberapa fungsi agregasi sekaligus pada satu atau beberapa kolom.
Buka → # Named AggregationMenamai kolom hasil agregasi langsung saat menulis groupby agar hasilnya rapi.
Buka → # transform() pada GroupByMenghasilkan nilai agregat per kelompok dengan ukuran yang sama seperti data asli.
Buka → # filter() pada GroupByMenyaring kelompok utuh berdasarkan kondisi agregat, misalnya kelompok dengan total tertentu.
Buka → # GroupBy dan Missing ValuesMemahami bagaimana groupby memperlakukan NaN pada kunci kelompok dan data yang diagregasi.
Buka → # Persentase per KelompokMenghitung kontribusi setiap baris terhadap total kelompoknya dengan transform dan div.
Buka → # Analisis Berdasarkan KelompokMenggabungkan seluruh teknik groupby untuk menjawab pertanyaan analisis nyata.
Buka →Bab 12 Menggabungkan dan Membentuk Data
Menggabungkan beberapa DataFrame dengan pd.concat() beserta parameter join dan ignore_index.
Buka → # Menggabungkan BarisMenumpuk data vertikal dari berbagai sumber dengan axis=0 dan penanganan kolom berbeda.
Buka → # Menggabungkan KolomMenyandingkan data secara horizontal dengan axis=1 dan menjajarkan index-nya.
Buka → # Menambal Data dengan combine_first()Mengisi nilai yang hilang dari satu DataFrame dengan nilai DataFrame lain menggunakan combine_first() dan update().
Buka → # pd.merge()Menggabungkan dua tabel berdasarkan kolom kunci seperti JOIN di SQL dengan pd.merge().
Buka → # Inner JoinMenggabungkan hanya baris dengan kunci yang cocok di kedua tabel menggunakan how="inner".
Buka → # Left, Right, dan Outer JoinMempertahankan baris dari satu atau kedua tabel dengan how="left", "right", dan "outer".
Buka → # Join dengan Beberapa KunciMenggabungkan tabel berdasarkan kombinasi beberapa kolom kunci sekaligus.
Buka → # Validasi Relasi JoinMenjaga kebenaran relasi one-to-one dan one-to-many dengan parameter validate.
Buka → # Menangani Kolom DuplikatMengatasi nama kolom yang sama di kedua tabel dengan suffixes saat merge.
Buka → # Membandingkan Dua DataFrame dengan compare()Menemukan perbedaan sel demi sel antara dua DataFrame dengan compare() untuk kebutuhan audit dan rekonsiliasi.
Buka → # pd.merge_asof()Menggabungkan data berdasarkan kunci waktu terdekat untuk data deret waktu.
Buka → # merge_ordered() dan Anti-JoinMenggabungkan data terurut dengan merge_ordered() serta menemukan baris tanpa pasangan menggunakan anti-join.
Buka → # pivot() dan pivot_table()Membentuk tabel lebar dari data panjang dengan pivot() dan pivot_table().
Buka → # Method melt()Melelehkan tabel lebar menjadi format panjang dengan melt() agar siap dianalisis.
Buka → # explode() untuk Kolom ListMengubah kolom berisi list menjadi baris terpisah dengan explode() agar setiap elemen bisa dianalisis.
Buka → # stack() dan unstack()Memindahkan level index ke kolom dan sebaliknya dengan stack() dan unstack().
Buka → # Format Wide vs LongMemahami dua konvensi bentuk tabel dan kapan masing-masing lebih sesuai dipakai.
Buka → # pd.crosstab()Membuat tabel frekuensi silang antara dua kolom kategori dengan pd.crosstab().
Buka →Bab 13 Data Waktu dan Deret Waktu
Mengenal dtype datetime64 di pandas 3.0 beserta resolusi unit waktunya.
Buka → # Konversi String ke DatetimeMengubah teks tanggal menjadi datetime dengan pd.to_datetime() dan format eksplisit.
Buka → # Parsing Tanggal dan WaktuMengurai format tanggal beragam dengan parameter format, dayfirst, dan errors.
Buka → # Datetime IndexMenjadikan datetime sebagai index DataFrame untuk membuka fitur deret waktu.
Buka → # Memilih Data Berdasarkan TanggalMengambil data untuk tanggal, rentang, bulan, dan tahun tertentu dari datetime index.
Buka → # Resampling DataMengubah granularitas data waktu dengan resample(), dari harian ke bulanan dan sebaliknya.
Buka → # Grup per Periode dengan GrouperMengagregasi data berbasis waktu per kelompok menggunakan pd.Grouper saat kolom tanggal bukan index.
Buka → # Frekuensi dan OffsetMemahami alias frekuensi seperti D, W, ME, dan YE serta date_range untuk membuat deret.
Buka → # Rolling WindowMenghitung rata-rata dan statistik bergerak dengan rolling() untuk memperhalus tren.
Buka → # Expanding WindowMenghitung statistik kumulatif yang terus bertambah dengan expanding().
Buka → # Exponentially Weighted WindowMemberi bobot lebih pada data terbaru dengan ewm() untuk perhitungan yang responsif.
Buka → # Pergeseran Data dengan shift()Menggeser data maju dan mundur dengan shift() untuk membandingkan nilai antar periode.
Buka → # Menghitung Perubahan dengan diff()Menghitung selisih antar periode dengan diff() untuk melihat perubahan absolut dan persentase.
Buka → # Timedelta dan DurasiMenghitung dan mengolah durasi waktu dengan to_timedelta, Timedelta, serta accessor .dt untuk analisis jeda antar peristiwa.
Buka → # Periode dan TimezoneBekerja dengan Period, period_range, dan konversi timezone dengan tz_localize dan tz_convert.
Buka → # Menangani Data Waktu yang HilangMenemukan tanggal yang hilang pada deret waktu dan mengisinya dengan asfreq dan interpolasi.
Buka → # Analisis Deret WaktuMenggabungkan resampling, rolling, dan shift untuk menganalisis tren data deret waktu.
Buka →Bab 14 Data Teks dan Kategori
Memanfaatkan accessor .str untuk memproses kolom teks secara vectorized.
Buka → # Pencarian dan Penggantian TeksMencari pola dan mengganti teks dalam kolom dengan .str.contains() dan .str.replace().
Buka → # Pemisahan dan Ekstraksi TeksMemecah kolom teks dengan .str.split() dan mengekstrak bagian tertentu dengan .str.extract().
Buka → # Regular ExpressionsMenyaring dan mengekstrak teks dengan pola regex pada method .str dan .replace().
Buka → # Normalisasi TeksMenyeragamkan teks: lowercase, strip, menghapus tanda baca, dan menyatukan spasi ganda.
Buka → # Tipe Data CategoricalMengenal dtype category untuk data teks dengan nilai berulang yang terbatas.
Buka → # Mengelola KategoriMenambah, menghapus, dan mengganti kategori melalui .cat accessor dan set_categories().
Buka → # Urutan KategoriMendefinisikan urutan kategori bermakna agar perbandingan dan sort menjadi logis.
Buka → # Analisis Frekuensi KategoriMenghitung distribusi kategori dengan value_counts() dan groupby pada data categorical.
Buka → # Penghematan Memori dengan KategoriMengukur dan memangkas penggunaan memori dengan mengonversi teks berulang menjadi kategori.
Buka →Bab 15 Missing Data dan Outlier Lanjutan
Mengenali pola hilangnya data: MCAR, MAR, dan MNAR serta dampaknya pada pilihan penanganan.
Buka → # Forward Fill dan Backward FillMengisi nilai kosong dari data sebelum atau sesudahnya dengan ffill() dan bfill().
Buka → # Interpolasi DataMengisi nilai kosong dengan estimasi antar titik data menggunakan interpolate().
Buka → # Missing Data pada GroupByMemahami perilaku NaN pada kunci kelompok dan agregasi beserta cara mengendalikannya.
Buka → # Outlier dengan Metode IQRMendeteksi nilai ekstrem dengan aturan IQR dan menandainya sebagai boolean mask.
Buka → # Outlier dengan Z-ScoreMendeteksi outlier berdasarkan jarak dari mean dalam satuan standard deviation.
Buka → # Winsorization dan ClippingMembatasi nilai ekstrem ke batas kuantil atau ambang tertentu dengan clip().
Buka → # Memilih Strategi Penanganan DataMenyusun keputusan penanganan missing dan outlier berdasarkan konteks dan tujuan analisis.
Buka →Bab 16 Visualisasi Data
Mengenal method .plot() pandas sebagai jembatan cepat dari DataFrame ke Matplotlib.
Buka → # Line PlotMenggambar grafik garis untuk melihat tren data sepanjang sumbu x dengan .plot.line().
Buka → # Bar PlotMembandingkan nilai antar kategori dengan .plot.bar(), termasuk bar bertumpuk dan horizontal.
Buka → # HistogramMelihat distribusi data numerik dengan .plot.hist() dan mengatur jumlah bin-nya.
Buka → # Box PlotMerangkum distribusi, median, dan outlier per kolom dengan .plot.box().
Buka → # Scatter PlotMemvisualisasikan hubungan dua variabel numerik dengan .plot.scatter().
Buka → # Area PlotMenampilkan besaran kumulatif antar kategori sepanjang waktu dengan .plot.area().
Buka → # Visualisasi KorelasiMengubah matriks korelasi menjadi scatter matrix dan visualisasi yang mudah dibaca.
Buka → # Mengatur Label dan LegendMenyempurnakan judul, label sumbu, dan legend pada plot pandas via parameter .plot().
Buka → # Integrasi dengan MatplotlibMenggabungkan plot pandas dengan objek figure dan axes Matplotlib untuk layout kompleks.
Buka → # Styling Tabel dengan StylerMengubah DataFrame menjadi laporan yang menarik dengan Styler: format angka, gradasi warna, bar, dan ekspor ke Excel serta HTML.
Buka → # Backend Plotting AlternatifMengganti mesin plot pandas ke backend interaktif seperti Plotly dengan parameter backend.
Buka →Bab 17 Integrasi dengan Ekosistem Python
Memahami fondasi NumPy di balik pandas dan pertukaran data antara keduanya.
Buka → # Pandas dan MatplotlibMengontrol visualisasi DataFrame lebih jauh dengan API Matplotlib.
Buka → # Pandas dan SeabornMembuat visualisasi statistik yang elegan langsung dari DataFrame dengan seaborn.
Buka → # Pandas dan SciPyMelengkapi analisis pandas dengan uji statistik dan fungsi ilmiah dari scipy.
Buka → # Pandas dan scikit-learnMengalirkan DataFrame ke pipeline machine learning scikit-learn dengan benar.
Buka → # Pandas dan SQLAlchemyMemahami peran SQLAlchemy sebagai engine koneksi database bagi read_sql dan to_sql.
Buka → # Pandas dan JupyterMengoptimalkan tampilan DataFrame dan alur kerja eksplorasi di Jupyter Notebook.
Buka → # Konversi DataFrame ke ArrayMengubah DataFrame menjadi array NumPy dan sebaliknya dengan to_numpy() dan from_records().
Buka → # Interoperabilitas Format Data LainBertukar data dengan pyarrow table, dictionary Python, dan struktur data lainnya.
Buka →Bab 18 Performa dan Efisiensi
Mengenali operasi pandas yang mahal dan faktor yang memengaruhi waktu eksekusinya.
Buka → # Menghindari Loop yang Tidak PerluMengganti iterrows dan loop Python dengan operasi vectorized yang jauh lebih cepat.
Buka → # Vectorization dan Boolean MaskingMenerapkan pola vectorized untuk filter dan transformasi data berukuran besar.
Buka → # Memilih dtype yang EfisienMenurunkan konsumsi memori dengan memilih int32, float32, category, dan pyarrow dtypes.
Buka → # Mengurangi Penggunaan MemoriMengukur memory_usage() dan menerapkan teknik penurunan konsumsi memori DataFrame.
Buka → # Membaca Data dalam ChunksMemproses file berukuran besar secara bertahap dengan chunksize pada read_csv().
Buka → # Optimasi read_csv()Mempercepat pembacaan CSV dengan usecols, dtype, engine c, dan pyarrow backend.
Buka → # Copy vs ViewMemahami perilaku Copy-on-Write pandas 3.0 dan dampaknya terhadap performa.
Buka → # Profiling Operasi PandasMengukur waktu eksekusi operasi dengan %timeit, timeit, dan perf_counter.
Buka → # Categorical dan Memory UsageMenghitung penghematan nyata dtype category pada kolom teks berulang.
Buka → # Batasan Pandas untuk Data BesarMengenali batas memori pandas dan alternatif seperti Polars, DuckDB, dan PySpark.
Buka →Bab 19 Advanced Pandas
Membuat dan membaca index bertingkat (hierarchical index) pada Series dan DataFrame.
Buka → # Hierarchical IndexingMenavigasi dan memanipulasi level index dengan xs(), swaplevel(), dan stack/unstack.
Buka → # Label Duplikat dan Flag IndeksMengenali label duplikat pada index, perilaku loc saat label ganda, dan cara melarangnya dengan set_flags.
Buka → # Advanced SelectionMenggabungkan MultiIndex, .loc, dan slicer IndexSlice untuk seleksi data bertingkat.
Buka → # Custom AggregationMenulis fungsi agregasi kustom sendiri dan memasangkannya pada groupby dan agg.
Buka → # Window FunctionsMengulas rolling, expanding, dan ewm secara utuh untuk analisis berbasis jendela.
Buka → # eval() dan query()Mengevaluasi ekspresi kolom dengan numexpr melalui eval() untuk DataFrame besar.
Buka → # pd.col() dan Ekspresi KolomMembangun ekspresi kolom yang dapat dibaca ulang dengan pd.col() untuk assign, loc, dan query.
Buka → # Extension dtypesMemahami sistem dtype ekstensi pandas dan kapan menggunakannya.
Buka → # Nullable dtypesMemakai Int64, Float64, boolean, dan str dengan penanda missing yang konsisten.
Buka → # Integrasi PyArrowMengaktifkan dtype pyarrow untuk performa dan memori yang lebih efisien.
Buka → # Migrasi object ke str dtypeMemigrasi kolom teks dari object ke dtype str pandas 3.0 termasuk pemeriksaan dan jebakan umum.
Buka → # Sparse DataMenghemat memori untuk data yang didominasi satu nilai dengan SparseDtype.
Buka → # Stabilitas API PandasMemahami kebijakan deprecation pandas dan cara menjaga kode tetap kompatibel.
Buka → # Copy-on-WriteMemahami aturan Copy-on-Write di pandas 3.0: mengapa chained assignment tidak lagi berfungsi dan bagaimana cara mengubah data dengan aman.
Buka → # Opsi dan Pengaturan PandasMengatur perilaku tampilan dan lingkungan pandas dengan set_option, option_context, dan reset_option.
Buka →Bab 20 Pengujian dan Debugging
Mengurai pesan KeyError, IndexError, dan ValueError pandas untuk menemukan akar masalah.
Buka → # Debugging Index dan AlignmentMelacak masalah hasil operasi yang tidak terduga akibat perbedaan index.
Buka → # Debugging MergeMemeriksa jumlah baris dan kunci join saat hasil merge tidak sesuai ekspektasi.
Buka → # Debugging dtypeMenemukan konversi tipe yang berubah diam-diam saat membaca dan memproses data.
Buka → # Menguji DataFrameMenulis unit test untuk DataFrame dengan pytest dan pola perbandingan yang tepat.
Buka → # assert_frame_equal()Membandingkan dua DataFrame secara ketat dengan utilitas testing pandas.
Buka → # Validasi Schema DataMemeriksa nama kolom, dtype, dan bentuk data terhadap kontrak yang disepakati.
Buka → # Menguji Transformasi DataMenguji fungsi transformasi dengan input kecil, output terdefinisi, dan kasus tepi.
Buka → # Reproducible Data ProcessingMenjadikan pipeline data dapat direproduksi dengan seed, versi, dan data uji tetap.
Buka →Bab 21 Praktik Data Engineering
Menyusun tahapan extract, transform, load menjadi fungsi-fungsi pandas yang terstruktur.
Buka → # Membaca Data dari Banyak SumberMenggabungkan data dari CSV, Excel, JSON, dan database dalam satu pipeline.
Buka → # Transformasi ETL dengan PandasMenerapkan pembersihan dan transformasi standar pada tahap transform pipeline.
Buka → # Validasi Data PipelineMemasang gerbang validasi schema dan aturan bisnis sebelum data diekspor.
Buka → # Logging dan Penanganan ErrorMencatat jalannya pipeline dengan module logging dan menangani kegagalan tahapan.
Buka → # Ekspor Data Hasil TransformasiMenulis hasil pipeline ke beberapa format output dengan penamaan yang konsisten.
Buka → # Otomasi Pemrosesan DataMembungkus pipeline menjadi skrip CLI yang siap dijalankan terjadwal.
Buka →Bab 22 Proyek
Memproses data cuaca harian: menangani data hilang, menganalisis pola, dan merangkum data harian.
Lihat proyek → # Proyek: Analisis Deret Waktu PenjualanMenganalisis tren penjualan dari waktu ke waktu: agregasi per periode, deteksi tren, dan ringkasan deret waktu.
Lihat proyek → # Proyek: Analisis Harga KomoditasMengimpor, membersihkan, dan membandingkan pergerakan harga beberapa komoditas antar periode.
Lihat proyek → # Proyek: Analisis PenjualanMenganalisis dataset transaksi penjualan dari pembersihan data hingga ringkasan kinerja produk.
Lihat proyek → # Proyek: Eksplorasi Dataset TerbukaMenjelajahi dataset terbuka pilihan dari pemahaman struktur hingga penyusunan temuan analisis.
Lihat proyek → # Proyek: Pipeline ETL dengan PandasMembangun pipeline ETL lengkap: mengambil data dari banyak sumber, mentransformasi, memvalidasi, dan mengekspor data bersih.
Lihat proyek →Bab 23 Sumber Belajar
Panduan menjelajah situs dokumentasi resmi pandas: user guide, getting started, dan community.
Buka → # Referensi APIMenavigasi API reference pandas untuk menemukan signature dan perilaku method dengan cepat.
Buka → # Buku dan ReferensiDaftar buku dan referensi cetak yang direkomendasikan untuk mendalami pandas.
Buka → # Tutorial dan ArtikelTutorial resmi, cheatsheet, dan sumber artikel berkualitas untuk melatih keterampilan pandas.
Buka → # Dataset untuk LatihanSumber dataset terbuka yang aman dipakai untuk berlatih analisis data dengan pandas.
Buka → # Contoh KodeRepositori contoh kode resmi pandas dan cara memanfaatkannya untuk belajar.
Buka → # GlosariumKamus istilah pandas dan analisis data yang dipakai sepanjang Course ini.
Buka →