0Pricing
Learn AI with Python · Pelajaran

Penggabungan dan Penyatuan Lanjutan

pd.merge() dengan how, on, left_on/right_on, suffixes, serta merge_asof untuk penyatuan berbasis waktu.

Penggabungan dan Penyatuan Lanjutan adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 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 Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Menggabungkan DataFrame

pd.merge menggabungkan dua DataFrame berdasarkan kunci yang sama, persis seperti SQL JOIN. Menguasai opsi how sangat penting untuk mengolah data relasional.

import pandas as pd
left = pd.DataFrame({"id": [1, 2, 3], "name": ["a", "b", "c"]})
right = pd.DataFrame({"id": [2, 3, 4], "score": [90, 80, 70]})

Penggabungan Dalam (bawaan)

how="inner" hanya mempertahankan kunci yang ada pada KEDUA DataFrame. Ini adalah pilihan bawaan.

print(pd.merge(left, right, on="id", how="inner"))
#    id name  score
# 0   2    b     90
# 1   3    c     80

Penggabungan Kiri

how="left" mempertahankan setiap baris dari DataFrame kiri; kolom kanan yang tidak memiliki pasangan menjadi NaN. Ini adalah penggabungan yang paling umum dalam analitik.

print(pd.merge(left, right, on="id", how="left"))
#    id name  score
# 0   1    a    NaN
# 1   2    b   90.0
# 2   3    c   80.0

Penggabungan Luar

how="outer" mempertahankan semua kunci dari kedua sisi dan mengisi bagian yang kosong dengan NaN. Gunakan cara ini untuk melihat gabungan lengkap seluruh rekaman.

print(pd.merge(left, right, on="id", how="outer"))
# includes id 1 (no score) and id 4 (no name)

Menggabungkan Kolom dengan Nama Berbeda

Jika nama kolom kunci berbeda, gunakan left_on dan right_on, bukan on.

r2 = right.rename(columns={"id": "user_id"})
print(pd.merge(left, r2, left_on="id", right_on="user_id"))

Akhiran untuk Kolom yang Tumpang Tindih

Jika kedua DataFrame memiliki nama kolom nonkunci yang sama, pandas menambahkan _x dan _y. Ganti akhiran tersebut dengan suffixes agar lebih jelas.

a = pd.DataFrame({"id": [1], "val": [10]})
b2 = pd.DataFrame({"id": [1], "val": [99]})
print(pd.merge(a, b2, on="id", suffixes=("_old", "_new")))

Kolom Penanda

indicator=True menambahkan kolom _merge yang menunjukkan sumber setiap baris: left_only, right_only, atau both. Fitur ini sangat berguna untuk mengaudit penggabungan.

print(pd.merge(left, right, on="id", how="outer", indicator=True))
# _merge tells you where each row came from

Mendiagnosis Masalah Penggabungan

Memfilter berdasarkan penanda dengan cepat mengungkapkan kunci yang tidak memiliki pasangan, yang merupakan penyebab umum data terhapus tanpa terlihat.

m = pd.merge(left, right, on="id", how="outer", indicator=True)
print(m[m["_merge"] != "both"])   # rows that did not match

merge_asof untuk Penggabungan Berdasarkan Waktu

pd.merge_asof menggabungkan berdasarkan kunci TERDEKAT, bukan kecocokan yang persis. Fungsi ini dirancang khusus untuk menyelaraskan deret waktu, misalnya mencocokkan setiap transaksi dengan kuotasi terbaru sebelumnya. Kedua DataFrame harus diurutkan berdasarkan kuncinya.

trades = pd.DataFrame({"time": [1, 3, 7], "price": [10, 11, 12]})
quotes = pd.DataFrame({"time": [0, 2, 5], "bid": [9, 10, 11]})
print(pd.merge_asof(trades, quotes, on="time"))

Arah merge_asof

Secara bawaan, merge_asof melihat ke ARAH BACKWARD (kunci terbaru pada atau sebelum waktu tersebut). Gunakan direction="forward" atau "nearest" untuk mengubah aturan pencocokan.

print(pd.merge_asof(trades, quotes, on="time", direction="nearest"))

Memilih Penggabungan yang Tepat

Gunakan inner untuk mempertahankan hanya kecocokan, left untuk memperkaya tabel utama, outer untuk gabungan lengkap, dan merge_asof untuk penggabungan yang selaras berdasarkan waktu (dengan kunci perkiraan).

Pemeriksaan Singkat

Uji pengetahuan Anda tentang penggabungan.

Ringkasan

Perangkat penggabungan:

  • how= inner / left / outer mengatur kunci mana yang dipertahankan
  • on dibandingkan dengan left_on/right_on untuk kolom kunci
  • suffixes membedakan nama yang tumpang tindih
  • indicator=True memeriksa sumber baris
  • pd.merge_asof untuk penggabungan berdasarkan waktu dengan kunci terdekat (urutkan terlebih dahulu)

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penggabungan dan Penyatuan Lanjutan” gratis?

Ya — teks lengkap “Penggabungan dan Penyatuan Lanjutan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penggabungan dan Penyatuan Lanjutan”?

pd.merge() dengan how, on, left_on/right_on, suffixes, serta merge_asof untuk penyatuan berbasis waktu. Kamu berlatih Learn AI with Python 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 Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python 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 3 dari 4.

Berapa lama pelajaran “Penggabungan dan Penyatuan Lanjutan” 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 Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python 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

  1. GroupBy dan Agregasi
  2. Tabel Pivot dan Tabulasi Silang
  3. Penggabungan dan Penyatuan Lanjutan
  4. Deret Waktu dalam Pandas
← Kembali ke Learn AI with Python