Tutorial Pandera: Validasi Data Statistik untuk DataFrame

# Pandera: Validasi Data Statistik untuk DataFrame pandas dan Polars Pipeline data sering gagal tanpa suara. Sebuah kolom yang seharusnya tidak pernah negatif lolos begitu saja, salah ketik pada kate...

By Ruby Abdullah · · tutorial
PanderaData ValidationPandasData QualityData EngineeringPython

Pandera: Validasi Data Statistik untuk DataFrame pandas dan Polars

Pipeline data sering gagal tanpa suara. Sebuah kolom yang seharusnya tidak pernah negatif lolos begitu saja, salah ketik pada kategori merusak join di tahap berikutnya, dan Anda baru menyadarinya ketika dashboard terlihat keliru tiga hari kemudian. Pandera memungkinkan Anda mendeklarasikan bentuk DataFrame yang seharusnya langsung di dalam Python dan menegakkan aturan itu tepat di tempat data mengalir. Tutorial ini membahas Pandera dari instalasi pertama hingga integrasi pipeline produksi, dengan dataset transaksi penjualan sebagai contoh yang dipakai sepanjang artikel.

Apa Itu Pandera

Pandera adalah pustaka validasi data untuk data tabular. Anda mendefinisikan sebuah skema, yaitu deskripsi kolom, tipe datanya, dan batasan yang harus dipenuhi, lalu Anda memvalidasi sebuah DataFrame terhadap skema tersebut. Jika data sesuai, DataFrame dikembalikan tanpa perubahan. Jika tidak, Pandera memunculkan error yang memberi tahu Anda persis baris dan kolom mana yang gagal beserta alasannya.

Ide utamanya adalah skema merupakan objek Python biasa. Skema berada di dalam basis kode Anda, berdampingan dengan fungsi yang menghasilkan dan mengonsumsi data. Pendekatan ini kadang disebut "schema as code": tidak ada file konfigurasi terpisah, tidak ada layanan validasi eksternal, dan tidak ada YAML yang harus dijaga agar tetap sinkron. Anda mengimpor skema sama seperti mengimpor modul lain.

Pandera awalnya berfokus pada pandas dan kini mendukung beberapa backend, termasuk Polars dan PySpark, melalui model skema bersama. Logika validasi yang Anda tulis sebagian besar sama, terlepas dari mesin DataFrame yang ada di baliknya.

Kapan Memakai Pandera dibanding Great Expectations

Kedua pustaka memvalidasi data tabular, tetapi keduanya menyasar alur kerja yang berbeda.

Great Expectations adalah kerangka kerja yang lebih berat. Ia memelihara sebuah data context, menghasilkan dokumentasi data berbentuk HTML, menyimpan hasil validasi, dan dirancang dengan gagasan platform kualitas data terpusat yang dipakai bersama oleh analis dan engineer. Ini cocok ketika Anda membutuhkan laporan validasi yang dapat diaudit, katalog ekspektasi, dan perkakas yang juga digunakan oleh non-pengembang.

Pandera ringan dan mengutamakan kode. Ia menambahkan validasi secara inline di proses Python yang sama dengan proses yang mentransformasi data. Tidak ada context yang perlu dikonfigurasi dan tidak ada penyimpanan artefak. Anda memilih Pandera ketika menginginkan asersi yang berada di dalam fungsi ETL, batas fungsi yang diperiksa tipenya, dan validasi yang berjalan sebagai bagian normal dari pipeline tanpa infrastruktur tambahan.

Aturan praktisnya: jika validasi adalah urusan pengembang yang menyatu dengan kode, pilih Pandera. Jika validasi adalah urusan organisasi dengan dokumentasi dan pelaporan bersama, Great Expectations sepadan dengan bobotnya. Keduanya tidak saling meniadakan; sebagian tim memakai Pandera untuk pemeriksaan inline yang cepat dan Great Expectations untuk kontrak yang terdokumentasi.

Instalasi

Pasang paket inti dengan pip.

pip install pandera

Dukungan backend dan fitur opsional didistribusikan sebagai extras. Pasang hanya yang Anda butuhkan.

# Dukungan Polars

pip install 'pandera[polars]'

Dukungan PySpark

pip install 'pandera[pyspark]'

Pemeriksaan statistik berbasis hypothesis

pip install 'pandera[hypotheses]'

Semuanya

pip install 'pandera[all]'

Verifikasi instalasi dan periksa versinya.

import pandera as pa

print(pa.version)

Skema Pertama dengan DataFrameSchema

API berbasis objek berpusat pada DataFrameSchema, yang menyimpan pemetaan nama kolom ke definisi Column. Berikut sebuah skema untuk tabel transaksi penjualan.

import pandas as pd

import pandera as pa

from pandera import Column, Check, DataFrameSchema

schema = DataFrameSchema(

{

"transactionid": Column(int, unique=True),

"product": Column(str),

"category": Column(str),

"quantity": Column(int, Check.greaterthan(0)),

"unitprice": Column(float, Check.greaterthanorequalto(0)),

"region": Column(str),

"customeremail": Column(str, nullable=True),

},

strict=True,

coerce=True,

)

Setiap Column menerima sebuah dtype dan batasan opsional. Beberapa parameter melakukan sebagian besar pekerjaan:

Artikel Terkait

Tutorial Lengkap Great Expectations: Data Quality Testing untuk ML Pipelines

Tutorial Lengkap Great Expectations: Data Quality Testing untuk ML Pipelines Great Expectations adalah library Python op...

Tutorial dlt: Pipeline Ingestion Data Berbasis Python

Membangun Pipeline EL Berbasis Python dengan dlt (data load tool) Sebagian besar tim data menghabiskan waktu yang tidak ...

Tutorial Dagster: Orkestrasi Data dengan Software-Defined Assets

Dagster: Orkestrasi Data Modern dengan Software-Defined Assets Dagster adalah orkestrator data yang menyusun pipeline be...

PandasAI: Analisis Data dengan Natural Language di Python

PandasAI: Analisis Data dengan Natural Language di Python Pendahuluan Bayangkan Anda bisa bertanya kepada data Anda dala...