Pandas value_counts: Hitung Frekuensi Nilai
Blog/Tips & Trik/Pandas value_counts: Hitung Frekuensi Nilai

Pandas value_counts: Hitung Frekuensi Nilai

BimaBima
·15 Agustus 2026·8 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Method value_counts di pandas ngitung berapa kali tiap nilai unik muncul di sebuah kolom, lalu ngurutin dari yang paling sering. Hasilnya berupa Series dengan nilai jadi index dan jumlah kemunculan jadi isinya. Kamu bisa ubah jadi persentase pakai normalize=True, dan secara default value_counts ngabaikan NaN kecuali kamu set dropna=False.

value_counts adalah method pandas yang ngitung berapa kali tiap nilai unik muncul di sebuah kolom. Satu baris kode, langsung dapet daftar frekuensi yang udah terurut.

Ini biasanya method pertama yang aku pakai waktu ketemu dataset baru. Cepat, ringkas, dan langsung kasih gambaran isi kolomnya.

Di artikel ini kamu bakal belajar cara pakainya, ubah jadi persen, ngelompokin angka jadi rentang, plus contoh nyata dari data order UMKM.

Apa itu value_counts di pandas?

value_counts ngitung frekuensi tiap nilai unik di satu kolom, lalu ngurutin dari yang paling sering. Hasilnya berupa Series dengan nilai jadi index dan jumlah kemunculan jadi isinya. Ini cara tercepat buat tau distribusi kategori tanpa nulis groupby panjang.

Cara pakainya nempel di kolom, yang di pandas disebut Series:

import pandas as pd

df['metode_bayar'].value_counts()

Misal hasilnya kayak gini:

qris        420
tunai       310
transfer    120
Name: count, dtype: int64

Langsung keliatan QRIS paling sering dipakai. Nggak perlu sortir manual, value_counts udah ngurutin dari terbesar.

Gimana cara bikin value_counts jadi persentase?

Tambahin argumen normalize=True. Hasilnya berubah dari jumlah baris jadi proporsi antara 0 dan 1. Kaliin 100 kalau mau langsung dalam persen. Ini cara cepat ngejawab pertanyaan seperti berapa persen order datang dari satu kota.

df['kota'].value_counts(normalize=True) * 100

Contoh hasilnya:

Jakarta     48.2
Bandung     22.5
Surabaya    17.1
Medan       12.2
Name: proportion, dtype: float64

Sekarang kamu tau hampir separuh order datang dari Jakarta, tanpa ngitung total baris dulu.

Apakah value_counts menghitung sel kosong?

Nggak, secara default value_counts ngabaikan NaN. Kalau kamu lagi ngecek kualitas data dan pengen tau berapa banyak sel yang kosong, tambahin dropna=False. Baris NaN bakal ikut kehitung dan muncul di hasil.

df['kategori'].value_counts(dropna=False)

Trik ini sering nyelametin aku. Kolom yang keliatan penuh ternyata punya banyak sel kosong yang kesembunyi. Kalau ketemu banyak NaN, lanjut bersihin pakai fillna atau dropna.

Gimana cara value_counts untuk angka jadi rentang?

Pakai argumen bins buat ngelompokin angka jadi beberapa rentang sama lebar. value_counts bakal ngitung berapa baris masuk tiap rentang. Ini berguna buat lihat sebaran harga atau umur tanpa bikin kolom kategori manual.

df['harga'].value_counts(bins=4)

Hasilnya empat rentang harga beserta jumlah produk di masing-masing. Cocok buat ngintip sebaran sebelum bikin histogram beneran.

Contoh kasus: analisis order toko_berkah

Toko_berkah punya DataFrame order 1.200 baris dengan kolom produk, kota, dan metode_bayar. Pemilik toko mau tau tiga hal cepat: produk terlaris, sebaran kota, dan porsi metode bayar.

# Produk terlaris
df['produk'].value_counts().head(5)

# Porsi metode bayar dalam persen
df['metode_bayar'].value_counts(normalize=True) * 100

Dari 1.200 order, muncul insight yang nggak ketebak: 5 produk teratas nyumbang 61% dari total order. Sisanya, 38 produk lain, cuma bagi-bagi 39% sisanya.

Ini pola 80/20 yang jelas. Pemilik toko jadi tau produk mana yang wajib selalu ready stok, dan mana yang boleh dipesan sesuai permintaan aja.

Buat analisis yang lebih dalam per kombinasi kolom, lanjut ke pandas groupby.

Kesalahan umum saat pakai value_counts

Tiga hal ini yang sering bikin hasil value_counts nyesatin.

  • Lupa NaN diabaikan. Persentase dari normalize dihitung dari data yang ada isinya aja. Kalau kolommu banyak kosong, angkanya bisa nyesatin. Cek dulu pakai dropna=False.
  • Kategori nggak konsisten. "Jakarta", "jakarta", dan "JKT" kehitung tiga kategori beda. Rapiin dulu teksnya pakai str.lower() sebelum value_counts.
  • Dipakai ke DataFrame utuh. value_counts paling pas buat satu kolom. Kalau butuh hitung lintas beberapa kolom, pakai groupby.

FAQ

Apa fungsi value_counts di pandas?

value_counts ngitung berapa kali tiap nilai unik muncul di sebuah kolom, terurut dari yang paling sering. Hasilnya Series dengan nilai jadi index dan jumlah kemunculan jadi isinya. Cara tercepat buat tau distribusi kategori.

Gimana bikin value_counts jadi persen?

Tambahin normalize=True, lalu kaliin 100. Hasilnya berubah jadi proporsi tiap nilai dari total, bukan jumlah baris mentah.

Apakah value_counts menghitung NaN?

Secara default nggak. Set dropna=False kalau kamu mau baris kosong ikut kehitung, misal waktu ngecek kualitas data.

Apa beda value_counts dan groupby?

value_counts ringkas buat satu kolom dan langsung terurut. groupby lebih fleksibel buat kombinasi beberapa kolom dan agregat tambahan. Pilih sesuai kebutuhan.

Penutup

value_counts itu method kecil yang kepakai tiap kali ketemu data baru. Inti pakainya: satu baris buat frekuensi, normalize buat persen, dropna=False buat ngecek sel kosong.

Sekali kamu terbiasa, ini jadi langkah pertama buat kenalan sama dataset apa pun.

Mau lanjut ke agregasi yang lebih dalam? Cek glosarium DataFrame dan dokumentasi resmi di pandas.Series.value_counts.

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