Using Libraries Pandas for Data Cleanup

Using Libraries Pandas for Data Cleanup

Pandas adalah library Python yang sangat powerful untuk manipulasi dan analisis data. Dalam proses data cleanup, Pandas menyediakan berbagai fungsi untuk :

  • Menangani missing values.
  • Menghapus duplikat.
  • Mengubah tipe data.
  • Filtering data.
  • Normalisasi data.

Mengapa Pandas?

  • Cepat dan efisien untuk dataset besar.
  • Sintaksis yang mudah dipahami.
  • Terintegrasi dengan library lain (NumPy, Matplotlib, Scikit-learn).

Persiapan Data

Sebelum memulai cleanup, kita perlu :

  1. Import library Pandas.
  2. Load dataset (dari CSV, Excel, SQL, dll).

Contoh :

python
import pandas as pd

# Contoh dataset
data = {
    'Nama': ['Andi', 'Budi', 'Cici', None, 'Eva'],
    'Usia': [21, 22, None, 24, 25],
    'Nilai': [80, 85, 90, 95, None],
    'Kota': ['Jakarta', 'Bandung', 'Jakarta', 'Surabaya', 'Jakarta']
}

df = pd.DataFrame(data)
print("Data Awal:")
print(df)

Output :

   Nama   Usia  Nilai      Kota
0  Andi   21.0   80.0   Jakarta
1  Budi   22.0   85.0   Bandung
2  Cici    NaN   90.0   Jakarta
3  None   24.0   95.0  Surabaya
4   Eva   25.0    NaN   Jakarta

Menangani Missing Values

Missing values (NaN/None) dapat mengganggu analisis. Cara menanganinya :

a. Mengecek Missing Values

python
print("Jumlah Missing Values per Kolom:")
print(df.isnull().sum())

Output:

Nama     1
Usia     1
Nilai    1
Kota     0

b. Menghapus Missing Values

python
# Hapus baris dengan missing values
df_drop = df.dropna()
print("Data setelah dropna():")
print(df_drop)

Output :

  Nama   Usia  Nilai     Kota
0  Andi   21.0   80.0  Jakarta
1  Budi   22.0   85.0  Bandung

c. Mengisi Missing Values

python
# Isi dengan nilai rata-rata (untuk numerik)
df['Usia'].fillna(df['Usia'].mean(), inplace=True)

# Isi dengan modus (untuk kategorik)
df['Nama'].fillna(df['Nama'].mode()[0], inplace=True)

print("Data setelah fillna():")
print(df)

Output :

   Nama   Usia  Nilai      Kota
0  Andi   21.0   80.0   Jakarta
1  Budi   22.0   85.0   Bandung
2  Cici   23.0   90.0   Jakarta
3  Andi   24.0   95.0  Surabaya
4   Eva   25.0    NaN   Jakarta

Menghapus Duplikat

Data duplikat dapat menyebabkan bias.

a. Cek Duplikat

python
print("Jumlah Duplikat:", df.duplicated().sum())

b. Hapus Duplikat

python
df_deduplicated = df.drop_duplicates()
print("Data setelah drop_duplicates():")
print(df_deduplicated)

Mengubah Tipe Data

Tipe data yang salah dapat mempengaruhi analisis.

a. Cek Tipe Data

python
print("Tipe Data Awal:")
print(df.dtypes)

Output :

Nama     object
Usia    float64
Nilai   float64
Kota     object

b. Konversi Tipe Data

python
# Ubah 'Usia' ke integer
df['Usia'] = df['Usia'].astype(int)

# Ubah 'Nilai' ke integer (dengan handle missing values)
df['Nilai'] = pd.to_numeric(df['Nilai'], errors='coerce').fillna(0).astype(int)

print("Tipe Data Setelah Konversi:")
print(df.dtypes)

Output :

Nama     object
Usia      int32
Nilai     int32
Kota     object

Filtering Data

Memilih subset data berdasarkan kondisi tertentu.

a. Filter Sederhana

python
# Ambil data dengan Nilai > 85
df_filtered = df[df['Nilai'] > 85]
print("Data dengan Nilai > 85:")
print(df_filtered)

Output :

   Nama  Usia  Nilai      Kota
2  Cici    23     90   Jakarta
3  Andi    24     95  Surabaya

b. Query dengan Multiple Conditions

python
# Ambil data dari Jakarta dengan Usia < 25
df_complex_filter = df[(df['Kota'] == 'Jakarta') & (df['Usia'] < 25)]
print("Data dari Jakarta dan Usia < 25:")
print(df_complex_filter)

Normalisasi Data

Membuat data lebih konsisten untuk analisis.

a. Mengubah Teks ke Lowercase

python
df['Kota'] = df['Kota'].str.lower()
print("Data setelah lowercase:")
print(df)

b. Menghapus Whitespace

python
df['Nama'] = df['Nama'].str.strip()

GroupBy dan Aggregasi

Berguna untuk summarisasi data.

python
# Hitung rata-rata nilai per kota
df_grouped = df.groupby('Kota')['Nilai'].mean()
print("Rata-rata Nilai per Kota:")
print(df_grouped)

Output :

Kota
bandung     85
jakarta     85
surabaya    95

Export Data Bersih

Setelah cleanup, simpan data ke format yang diinginkan.

python
# Simpan ke CSV
df.to_csv('data_clean.csv', index=False)

# Simpan ke Excel
df.to_excel('data_clean.xlsx', index=False)

Kesimpulan

Fungsi Kegunaan Contoh
dropna() Hapus missing values df.dropna()
fillna() Isi missing values df.fillna(0)
drop_duplicates() Hapus duplikat df.drop_duplicates()
astype() Ubah tipe data df['Usia'].astype(int)
groupby() Group data untuk aggregasi df.groupby('Kota')['Nilai'].mean()
to_csv() Simpan data ke CSV df.to_csv('data_clean.csv')

Tips :

  • Selalu backup data sebelum cleanup.
  • Gunakan inplace=True untuk modifikasi langsung pada DataFrame.

Latihan :

  1. Coba load dataset dari file CSV dan lakukan cleanup.
  2. Bandingkan hasil analisis sebelum/sesudah cleanup.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

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