Leer AI met Python · Les

Geavanceerd mergen en joinen

pd.merge() met how, on, left_on/right_on, suffixes en merge_asof voor tijdgebaseerde joins.

Les 3 van 413 stappen

Geavanceerd mergen en joinen is een gratis Leer AI met Python-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

DataFrames combineren

pd.merge koppelt twee DataFrames op gedeelde sleutels, precies zoals een SQL JOIN. Het beheersen van de how-opties is essentieel voor relationeel gegevenswerk.

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]})

Inner join (standaard)

how="inner" behoudt alleen sleutels die in beide DataFrames voorkomen. Dit is de standaardinstelling.

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

Left join

how="left" behoudt elke rij uit het linker dataframe; niet-overeenkomende kolommen aan de rechterkant worden NaN. Dit is de meest voorkomende join in analytisch werk.

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

Outer join

how="outer" behoudt alle sleutels van beide kanten en vult ontbrekende waarden op met NaN. Gebruik dit om de volledige vereniging van records te bekijken.

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

Koppelen op verschillende kolomnamen

Als sleutelkolommen verschillende namen hebben, gebruik je left_on en right_on in plaats van on.

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

Achtervoegsels voor overlappende kolommen

Als beide DataFrames een niet-sleutelkolom met dezelfde naam hebben, voegt pandas _x en _y toe. Overschrijf deze met suffixes voor meer duidelijkheid.

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

De indicator-kolom

indicator=True voegt een kolom _merge toe die de herkomst van elke rij toont: left_only, right_only of both. Dit is onmisbaar voor het controleren van joins.

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

Problemen met joins opsporen

Door op de indicator te filteren zie je snel welke sleutels geen overeenkomst hebben. Dat is een veelvoorkomende oorzaak van ongemerkt verloren gegevens.

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

merge_asof voor tijdkoppelingen

pd.merge_asof koppelt op de DICHTSTBIJZIJNDE sleutel in plaats van op een exacte overeenkomst. Deze functie is speciaal bedoeld om tijdreeksen op elkaar af te stemmen, bijvoorbeeld door elke transactie aan de meest recente voorafgaande notering te koppelen. Beide dataframes moeten op de sleutel zijn gesorteerd.

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"))

Richting van merge_asof

Standaard zoekt merge_asof ACHTERWAARTS (de meest recente sleutel op of vóór de huidige sleutel). Gebruik direction="forward" of "nearest" om de koppelingsregel te wijzigen.

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

De juiste koppeling kiezen

Gebruik een binnenkoppeling om alleen overeenkomsten te behouden, een linkerkoppeling om een hoofdtabel aan te vullen, een buitenkoppeling voor de volledige vereniging en merge_asof voor op tijd uitgelijnde koppelingen met benaderende sleutels.

Korte toets

Toets je kennis van koppelingen.

Samenvatting

Gereedschappen voor samenvoegen:

  • how= binnen / links / buiten bepaalt welke sleutels behouden blijven
  • on versus left_on/right_on voor sleutelkolommen
  • suffixes maakt overlappende namen ondubbelzinnig
  • indicator=True controleert de bronnen van rijen
  • pd.merge_asof voor tijdkoppelingen op basis van de dichtstbijzijnde sleutel (sorteer eerst)
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Geavanceerd mergen en joinen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Geavanceerd mergen en joinen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Geavanceerd mergen en joinen”?

pd.merge() met how, on, left_on/right_on, suffixes en merge_asof voor tijdgebaseerde joins. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Geavanceerd mergen en joinen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. GroupBy en aggregatie
  2. Draaitabellen en kruistabellen
  3. Geavanceerd mergen en joinen
  4. Tijdreeksen in Pandas
← Terug naar Leer AI met Python