Pandas Deteksi GAP
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.
2 Replies to “Pandas Deteksi GAP”