Lær AI med Python · leksjon

Avansert fletting og sammenkobling

pd.merge() med how, on, left_on/right_on, suffixes og merge_asof for tidsbaserte sammenkoblinger.

Leksjon 3 av 413 trinn

Avansert fletting og sammenkobling er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Kombinere DataFrames

pd.merge kobler sammen to DataFrames basert på felles nøkler, akkurat som en SQL JOIN. Det er viktig å beherske de ulike how-alternativene når du arbeider med relasjonelle data.

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 (standard)

how="inner" beholder bare nøkler som finnes i BEGGE DataFrames. Dette er standardvalget.

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

Left join

how="left" beholder alle rader fra den venstre DataFrame-en. Kolonner uten samsvar på høyre side blir NaN. Dette er den vanligste join-typen i analyse.

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" beholder alle nøkler fra begge sider og fyller tomrom med NaN. Bruk den for å se hele unionen av postene.

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

Koble sammen kolonner med ulike navn

Når nøkkelkolonnene har ulike navn, bruker du left_on og right_on i stedet for on.

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

Suffikser for overlappende kolonner

Hvis begge DataFrames har en kolonne med samme navn som ikke er en nøkkelkolonne, legger pandas til _x og _y. Overstyr dette med suffixes for tydelighet.

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

indicator-kolonnen

indicator=True legger til en _merge-kolonne som viser kilden til hver rad: left_only, right_only eller both. Dette er svært nyttig når du skal kontrollere join-operasjoner.

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

Finne problemer med join

Ved å filtrere på indicator-kolonnen finner du raskt nøkler uten samsvar, som ofte er årsaken til at data blir fjernet uten at det oppdages.

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

merge_asof for tidssammenføyninger

pd.merge_asof sammenføyer på den NÆRMESTE nøkkelen i stedet for et eksakt samsvar. Funksjonen er laget spesielt for å justere tidsserier, for eksempel ved å koble hver handel til det sist foregående kurstilbudet. Begge datarammene må være sortert etter nøkkelen.

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

Retning for merge_asof

Som standard ser merge_asof BAKOVER (den siste nøkkelen på eller før). Bruk direction="forward" eller "nearest" for å endre regelen for samsvar.

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

Velge riktig sammenføyning

Bruk inner for å beholde bare samsvar, left for å berike en primærtabell, outer for den fullstendige unionen og merge_asof for tidsjusterte sammenføyninger med omtrentlige nøkler.

Kort kontroll

Test kunnskapene Deres om sammenføyninger.

Oppsummering

Verktøykasse for sammenføyninger:

  • how= inner / left / outer styrer hvilke nøkler som beholdes
  • on kontra left_on/right_on for nøkkelkolonner
  • suffixes skiller mellom overlappende navn
  • indicator=True viser hvor radene kommer fra
  • pd.merge_asof for tidssammenføyninger med nærmeste nøkkel (sorter først)
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Avansert fletting og sammenkobling» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Avansert fletting og sammenkobling», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «Avansert fletting og sammenkobling»?

pd.merge() med how, on, left_on/right_on, suffixes og merge_asof for tidsbaserte sammenkoblinger. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Avansert fletting og sammenkobling»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. GroupBy og aggregering
  2. Pivottabeller og krysstabulering
  3. Avansert fletting og sammenkobling
  4. Tidsserier i Pandas
← Tilbake til Lær AI med Python