Pandas Deteksi GAP

Kode Lima Detik

import pandas as pd

df = pd.read_csv('data_urut.csv')

seq = [i for i in range(df['id').min(), df['id'].max() + 1]
seq_df = pd.DataFrame(seq, columns=['no'])

seq_df[~seq_df['no'].isin(df['id'])]

Latar Belakang

Dokumen transaksi diberikan identitas untuk memudahkan pengenalan, misal nota pembelian diberi kode BELI-0001 dan nota penjualan dengan JUAL-0001. Untuk memastikan semua transaksi telah diberikan dokumen, identitas dokumen umumnya menggunakan nomor yang urut seperti BELI-0001, BELI-0002 dan seterusnya.

Untuk memastikan pencatatan telah merangkum semua transaksi, kita perlu menguji apakah terdapat nomor urut yang hilang (gap detection).


Langkah Kerja

Kali ini data bersahadja yang digunakan dapat diunduh di sini.

Kode

Load Library dan Data

import pandas as pd

df = pd.read_csv('data_urut.csv')

Dapatkan nilai Min dan Max

Kita dapat menggunakan fungsi describe atau min dan max pada kolom yang akan diuji.

Buat Dataframe Baru Berupa No Urut

Nomor berurut ini menggunakan nilai minimal dan maksimal dari kolom yang akan diguji.

urut = [i for i in range(df['id'].min(), df['id'].max() + 1)]
urut_df = pd.DataFrame(urut, columns=['urut'])

Uji No Urut yang Hilang

urut_df[~urut_df['urut'].isin(df['id'])]

Terdapat delapan nomor yang hilang, kita dapat menguji pada data apakah memang nomor tersebut tidak ada.

df[(df['id'] > 20) & (df['id'] < 24)]

Data dan notebook dapat diakses di sini.


Cover Image by Hebi B. from Pixabay

2 Replies to “Pandas Deteksi GAP”

Leave a Reply

Your email address will not be published. Required fields are marked *