Penggabungan, Penyatuan, dan Pembersihan Data
Gabungkan DataFrames dan tangani nilai yang hilang secara profesional.
Penggabungan, Penyatuan, dan Pembersihan Data adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
pd.merge
pd.merge(left, right, on="key") menggabungkan dua DataFrame berdasarkan kolom yang sama — mirip dengan SQL JOIN.
import pandas as pd
users = pd.DataFrame({"id":[1,2,3],"name":["A","B","C"]})
orders = pd.DataFrame({"user_id":[1,1,2],"amount":[100,50,200]})
result = pd.merge(users, orders, left_on="id", right_on="user_id")
print(result)Jenis JOIN
Tentukan how="inner" (bawaan), "left", "right", atau "outer" untuk mengatur baris mana yang dipertahankan.
import pandas as pd
A = pd.DataFrame({"key":["a","b","c"],"val":[1,2,3]})
B = pd.DataFrame({"key":["b","c","d"],"x":[10,20,30]})
print(pd.merge(A, B, on="key", how="left")) # all of A
print(pd.merge(A, B, on="key", how="outer")) # all rowsdf.join
df.join(other) menggabungkan berdasarkan indeks. Cara ini lebih cepat dan sederhana saat penggabungan dilakukan berdasarkan indeks, bukan kolom.
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]}, index=["x","y"])
df2 = pd.DataFrame({"b":[3,4]}, index=["x","y"])
print(df1.join(df2))
# x: a=1 b=3
# y: a=2 b=4concat
pd.concat([df1, df2]) menumpuk DataFrames secara vertikal (axis=0) atau horizontal (axis=1).
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]})
df2 = pd.DataFrame({"a":[3,4]})
print(pd.concat([df1,df2], ignore_index=True))
# a: 1 2 3 4
# Horizontal:
df3 = pd.DataFrame({"b":[5,6]})
print(pd.concat([df1,df3], axis=1))Menangani Nilai yang Hilang
Deteksi NaN dengan isna()/notna(). Isi dengan fillna(). Hapus dengan dropna().
import pandas as pd, numpy as np
df = pd.DataFrame({"a":[1,np.nan,3],"b":[np.nan,2,3]})
print(df.isna().sum()) # count nulls per column
df["a"] = df["a"].fillna(0)
df = df.dropna() # drop rows with any nullStrategi fillna
Isi nilai yang hilang dengan konstanta, pengisian maju (ffill), pengisian mundur (bfill), atau rata-rata kolom.
import pandas as pd, numpy as np
df = pd.DataFrame({"val":[1, np.nan, np.nan, 4]})
print(df["val"].ffill()) # forward fill: 1 1 1 4
print(df["val"].bfill()) # back fill: 1 4 4 4
print(df["val"].fillna(df["val"].mean())) # fill with meanMengubah Tipe Data
Gunakan astype() untuk mengonversi tipe kolom. Gunakan pd.to_datetime() untuk mengurai tanggal dan pd.to_numeric dengan errors="coerce" untuk konversi numerik yang aman.
import pandas as pd
df = pd.DataFrame({"age":["25","30","35"],"date":["2024-01-01","2024-06-15","2024-12-31"]})
df["age"] = df["age"].astype(int)
df["date"] = pd.to_datetime(df["date"])
print(df.dtypes)Membersihkan String
Aksesori .str pada Pandas menyediakan operasi string terv vektorisasi: strip(), lower(), replace(), extract().
import pandas as pd
df = pd.DataFrame({"name":[" Alice "," bob","CAROL"]})
df["clean"] = df["name"].str.strip().str.title()
print(df["clean"]) # Alice / Bob / CarolMengganti Nama dan Mengurutkan Ulang Kolom
Ganti nama dengan df.rename(columns={"old":"new"}). Urutkan ulang dengan pengindeksan menggunakan daftar.
import pandas as pd
df = pd.DataFrame({"a":[1],"b":[2],"c":[3]})
df = df.rename(columns={"a":"alpha","b":"beta"})
df = df[["c","beta","alpha"]] # reorder
print(df.columns.tolist()) # ['c', 'beta', 'alpha']Mendeteksi Duplikat
Temukan duplikat dengan duplicated() dan hapus dengan drop_duplicates().
import pandas as pd
df = pd.DataFrame({"id":[1,2,1,3],"val":["a","b","a","c"]})
print(df.duplicated()) # [F F T F]
print(df[df.duplicated()]) # show duplicates
clean = df.drop_duplicates(subset=["id"])apply untuk Transformasi Baris/Kolom
df.apply(func, axis=1) menerapkan fungsi ke setiap baris. axis=0 menerapkannya ke setiap kolom.
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
# New column = row sum:
df["total"] = df.apply(lambda row: row["a"] + row["b"], axis=1)
print(df)Pemeriksaan Singkat
Apa yang dilakukan df.fillna(method="ffill")?
Ringkasan
Gunakan pd.merge untuk JOIN bergaya SQL dan pd.concat untuk menumpuk data. Tangani NaN dengan isna(), fillna(), dan dropna(). Bersihkan string dengan aksesori .str. Konversikan tipe dengan astype() dan pd.to_datetime().
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penggabungan, Penyatuan, dan Pembersihan Data” gratis?
Ya — teks lengkap “Penggabungan, Penyatuan, dan Pembersihan Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penggabungan, Penyatuan, dan Pembersihan Data”?
Gabungkan DataFrames dan tangani nilai yang hilang secara profesional. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Penggabungan, Penyatuan, dan Pembersihan Data” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Series dan DataFrame
- Pengindeksan, Pemfilteran, dan Mask Boolean
- GroupBy, Agregasi, dan Tabel Pivot
- Penggabungan, Penyatuan, dan Pembersihan Data