Tutorial Polars: DataFrame Library Ultra-Cepat untuk Data Science

# Polars - Tutorial Lengkap Library DataFrame Ultra-Cepat ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Dasar-Dasar Polars](#dasar-dasar-polars) 4. [Evaluasi Lazy vs Ea...

By Ruby Abdullah · · tutorial
PolarsDataFrameData SciencePythonPandas AlternativePerformance

Polars - Tutorial Lengkap Library DataFrame Ultra-Cepat

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Dasar-Dasar Polars
  • Evaluasi Lazy vs Eager
  • Ekspresi dan Transformasi
  • Join dan Penggabungan DataFrame
  • Group By dan Agregasi
  • Fungsi Window
  • Benchmark Polars vs Pandas
  • Integrasi Pipeline ML
  • Menangani Dataset Besar dengan Streaming
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Polars adalah library DataFrame yang sangat cepat, ditulis dalam Rust dengan binding Python. Library ini memanfaatkan format memori kolumnar Apache Arrow dan mesin query multi-thread untuk memberikan performa yang seringkali 10-100x lebih cepat dari Pandas. Polars mendukung evaluasi eager dan lazy, menjadikannya ideal untuk analisis data eksploratif maupun pipeline data produksi.

    Keunggulan utama Polars dibandingkan Pandas:

    • Ditulis dalam Rust dengan interoperabilitas zero-copy melalui Apache Arrow
    • Eksekusi multi-thread secara default
    • Evaluasi lazy dengan optimasi query
    • API yang konsisten tanpa kebingungan berbasis indeks
    • Dukungan streaming untuk pemrosesan out-of-core

    Prasyarat

    • Python 3.8 atau lebih tinggi
    • Pemahaman dasar tentang DataFrame dan data tabular

    pip install polars
    

    pip install polars[all] # Termasuk dependensi opsional (Excel, konektor database, dll.)

    pip install pandas # Untuk benchmark perbandingan

    pip install scikit-learn # Untuk contoh pipeline ML

    Dasar-Dasar Polars

    Membuat DataFrame

    import polars as pl
    
    

    Dari dictionary

    df = pl.DataFrame({

    "nama": ["Alice", "Bob", "Charlie", "Diana", "Eve"],

    "umur": [30, 25, 35, 28, 32],

    "departemen": ["Teknik", "Pemasaran", "Teknik", "Penjualan", "Pemasaran"],

    "gaji": [95000, 65000, 105000, 72000, 78000],

    "tanggalmasuk": ["2020-01-15", "2021-06-01", "2019-03-20", "2022-01-10", "2020-09-05"]

    })

    Konversi kolom tanggal

    df = df.withcolumns(pl.col("tanggalmasuk").str.todate())

    print(df)

    print(f"Bentuk: {df.shape}")

    print(f"Skema: {df.schema}")

    print(f"Tipe data: {df.dtypes}")

    Membaca Data

    # CSV
    

    df = pl.readcsv("data.csv")

    Parquet (sangat direkomendasikan untuk performa)

    df = pl.readparquet("data.parquet")

    JSON

    df = pl.readjson("data.json")

    Dari Pandas

    import pandas as pd

    pandasdf = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})

    polarsdf = pl.frompandas(pandasdf)

    Kembali ke Pandas jika diperlukan

    pandaskembali = polarsdf.topandas()

    Operasi Dasar

    # Pilih kolom
    

    df.select("nama", "gaji")

    df.select(pl.col("nama"), pl.col("gaji"))

    Filter baris

    df.filter(pl.col("gaji") > 80000)

    df.filter((pl.col("departemen") == "Teknik") & (pl.col("umur") > 30))

    Urutkan

    df.sort("gaji", descending=True)

    df.sort(["departemen", "gaji"], descending=[False, True])

    Tambah/modifikasi kolom

    df.withcolumns(

    (pl.col("gaji") 1.1).alias("gajisetelahkenaikan"),

    pl.col("nama").str.touppercase().alias("namakapital"),

    pl.lit("Aktif").alias("status")

    )

    Hapus kolom

    df.drop("tanggalmasuk")

    Ubah nama kolom

    df.rename({"nama": "namakaryawan", "gaji": "gajitahunan"})

    Statistik deskriptif

    df.describe()

    Evaluasi Lazy vs Eager

    Evaluasi lazy adalah salah satu fitur paling kuat dari Polars. Fitur ini membangun rencana query yang dioptimasi sebelum dieksekusi:

    import polars as pl
    
    

    EAGER: operasi langsung dieksekusi

    df = pl.readcsv("filebesar.csv")

    result = df.filter(pl.col("jumlah") > 100).select("id", "jumlah").sort("jumlah")

    LAZY: membangun rencana query, mengoptimasi, lalu mengeksekusi

    result = (

    Artikel Terkait

    Tutorial Kedro: Pipeline Data Science yang Reproducible dan Terstruktur

    Kedro: Pipeline Data Science yang Reproducible dan Mudah Dirawat Sebagian besar proyek data science dimulai dari satu no...

    DuckDB: Database Analitik In-Process untuk Data Science

    DuckDB: Database Analitik In-Process untuk Data Science DuckDB adalah database analitik in-process yang dirancang khusus...

    Tutorial Feature Engineering Masterclass: Teknik Feature untuk ML

    Tutorial 14: Masterclass Rekayasa Fitur (Feature Engineering) Daftar Isi Pendahuluan Prasyarat Mengapa Rekayasa Fitur Pe...

    Multiprocessing vs Multithreading di Python: Panduan Lengkap

    Multiprocessing vs Multithreading di Python: Panduan Lengkap Concurrency dan parallelism adalah konsep penting dalam pro...