Pandas describe: EDA Cepat untuk Data Baru
Blog/Tips & Trik/Pandas describe: EDA Cepat untuk Data Baru

Pandas describe: EDA Cepat untuk Data Baru

BimaBima
·28 September 2026·7 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Fungsi df.describe() di pandas ngasih ringkasan statistik tiap kolom angka dalam satu baris kode: jumlah data, rata-rata, standar deviasi, nilai minimum, kuartil, dan maksimum. Ini alat pertama buat EDA atau kenalan sama data baru. Buat kolom kategori pakai describe(include='object'), dan buat lihat semua kolom sekaligus pakai include='all'.

Fungsi df.describe() di pandas ngasih ringkasan statistik tiap kolom angka dalam satu baris kode. Kamu langsung dapat jumlah data, rata-rata, sebaran, dan nilai ekstrem tanpa nulis rumus satu-satu.

Ini biasanya perintah pertama yang aku ketik pas kenalan sama dataset baru. Dari satu tabel ringkasan, kamu udah bisa nebak kolom mana yang perlu dibersihin.

Di bawah aku tunjukin cara pakainya, cara baca tiap baris output, sampai trik buat kolom kategori.

Apa itu df.describe() di pandas?

df.describe() adalah metode pandas yang ngitung statistik ringkasan untuk tiap kolom numerik dalam DataFrame. Secara default dia nampilin delapan baris: count, mean, std, min, 25%, 50%, 75%, dan max. Semua itu keluar sekaligus, jadi kamu bisa nilai sebaran data cuma dari satu perintah.

Metode ini jadi langkah awal exploratory data analysis, yaitu proses kenalan sama data sebelum bikin analisis serius.

Gimana cara pakai describe untuk EDA cepat?

Panggil describe() langsung dari DataFrame setelah data dibaca. Buat data penjualan sederhana, satu baris ini udah cukup buat lihat rentang harga, jumlah transaksi, dan rata-ratanya sekaligus.

import pandas as pd

df = pd.read_csv('penjualan_toko_berkah.csv')
df.describe()

Outputnya berupa tabel: tiap kolom angka jadi satu kolom di ringkasan, tiap statistik jadi satu baris. Kolom teks otomatis diabaikan kecuali kamu minta secara khusus.

Cara baca output describe

Tiap baris output punya arti yang beda. Baca dari atas ke bawah biar kebayang bentuk sebaran datanya. Selisih antara mean dan median (baris 50%) langsung ngasih sinyal apakah data miring atau nggak.

BarisArtinya
countJumlah data yang nggak kosong di kolom itu
meanRata-rata nilai
stdStandar deviasi, seberapa jauh data nyebar dari rata-rata
minNilai terkecil
25% / 50% / 75%Kuartil, dengan 50% sama dengan median
maxNilai terbesar

Kalau count di satu kolom lebih kecil dari kolom lain, artinya ada data kosong di situ. Kalau max jauh banget dari 75%, kemungkinan ada pencilan yang perlu dicek.

describe untuk kolom kategori

Secara default describe() cuma nyentuh kolom angka. Buat kolom teks kayak nama produk atau kota, pakai argumen include. Outputnya beda: dia nampilin jumlah data, jumlah nilai unik, nilai yang paling sering muncul, dan frekuensinya.

# Ringkasan khusus kolom teks
df.describe(include='object')

# Semua kolom, angka dan teks sekaligus
df.describe(include='all')

Baris top nunjukin nilai paling sering, dan freq jumlah kemunculannya. Buat lihat sebaran kategori lebih detail, lanjutin pakai value_counts.

Atur persentil sesuai kebutuhan

Kuartil default (25%, 50%, 75%) nggak selalu cukup. Kalau kamu mau lihat ekor atas dan bawah, tambahin persentil sendiri lewat argumen percentiles. Ini berguna buat nemuin batas pencilan.

df.describe(percentiles=[0.05, 0.25, 0.5, 0.75, 0.95])

Dengan persentil 5% dan 95%, kamu langsung tau rentang tempat mayoritas data berada. Nilai di luar itu layak dicek lebih lanjut.

Contoh kasus: cek data penjualan toko_berkah

Waktu aku jalanin describe() di data 1.850 transaksi toko_berkah, kolom harga nunjukin mean Rp47.500 tapi median Rp32.000. Selisih ini langsung ngasih sinyal datanya miring ke kanan, ada segelintir transaksi besar yang narik rata-rata naik.

Nilai max di kolom qty ternyata 999, padahal 75%-nya cuma 4. Angka 999 itu jelas salah input, kemungkinan placeholder yang kelupaan dihapus. Dari satu baris describe(), dua masalah data langsung ketahuan sebelum aku lanjut ke analisis.

Kesalahan umum

  • Lupa kolom teks diabaikan. Tanpa include, kolom kategori nggak muncul sama sekali.
  • Ngira count sama untuk semua kolom. Count yang beda itu petunjuk ada data kosong.
  • Berhenti di describe. Ringkasan ini titik awal, bukan analisis akhir. Lanjutin dengan cek pencilan dan distribusi.

FAQ

Apa beda describe() dan info() di pandas?

describe() fokus ke statistik ringkasan seperti rata-rata dan kuartil untuk isi datanya. info() fokus ke struktur DataFrame, yaitu nama kolom, tipe data, dan jumlah nilai non-null. Kamu biasanya pakai info() dulu buat tau bentuk dan tipe kolom, baru describe() buat lihat sebaran angkanya. Keduanya sering dipanggil berurutan pas kenalan sama data baru.

Kenapa kolom angka nggak muncul di describe()?

Biasanya karena kolom itu kesimpan sebagai teks, bukan angka. Misalnya harga yang ada tanda titik atau koma kebaca sebagai object. Cek dulu pakai df.dtypes, lalu konversi kolomnya ke numerik pakai pd.to_numeric. Setelah tipenya benar, describe() otomatis masukin kolom itu ke ringkasan. Salah tipe data ini penyebab paling sering kolom hilang dari output.

Gimana cara describe() cuma untuk kolom tertentu?

Pilih dulu kolomnya baru panggil describe(), misalnya df[['harga', 'qty']].describe(). Cara ini bikin output lebih fokus dan gampang dibaca kalau DataFrame kamu punya puluhan kolom. Kamu juga bisa gabung sama groupby buat lihat ringkasan per kategori, misalnya statistik harga per kota. Fleksibel, tinggal sesuaiin sama pertanyaan yang mau kamu jawab.

Apakah describe() ngitung data kosong?

Nggak. Baris count cuma ngitung nilai yang nggak kosong, dan semua statistik lain kayak mean dan std juga ngabaikan data kosong. Jadi kalau satu kolom banyak yang hilang, rata-ratanya tetap valid untuk data yang ada, tapi count-nya bakal lebih kecil. Selisih count antar kolom itu justru cara cepat ngintip di mana data kosong ngumpul.

Mulai analisis dari ringkasan yang benar

Intinya: df.describe() ngasih potret cepat tiap kolom dalam satu baris, dan paling ampuh buat nemuin data kosong, pencilan, sama sebaran yang miring. Pakai include buat kolom teks dan percentiles buat lihat ekornya.

Setelah dapat gambaran awal, lanjutin ke agregasi lebih dalam pakai groupby agg untuk banyak agregasi sekaligus. Mau latihan analisis data beneran? Kulik terus di NgulikSQL.

Detail parameter describe() ada di dokumentasi resmi pandas.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

NumPy reshape: Ubah Bentuk Array (2026)
Tips & Trik
8 Oktober 2026•9 menit baca

NumPy reshape: Ubah Bentuk Array (2026)

Fungsi reshape di NumPy ngatur ulang bentuk array tanpa ngubah datanya. Ini cara pakainya, arti angka -1, dan cara ngeflat array.

BimaBima
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
Tips & Trik
6 Oktober 2026•10 menit baca

NumPy Array: Dasar-Dasar untuk Analis Data (2026)

NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.

BimaBima
Alternatif iterrows yang Lebih Cepat di Pandas
Tips & Trik
3 Oktober 2026•8 menit baca

Alternatif iterrows yang Lebih Cepat di Pandas

iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore