Fletning, join og datarensning
Kombinér DataFrames, og håndtér manglende værdier professionelt.
Fletning, join og datarensning er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.
pd.merge
pd.merge(left, right, on="key") sammenføjer to DataFrames via en fælles kolonne – svarende til 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)Sammenføjningstyper
Angiv how="inner" (standard), "left", "right" eller "outer" for at styre, hvilke rækker der beholdes.
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) sammenføjer efter indekset. Det er hurtigere og enklere, når sammenføjningen sker via indekset i stedet for en kolonne.
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]) stabler DataFrames lodret (axis=0) eller vandret (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))Håndtering af manglende værdier
Registrér NaN med isna()/notna(). Udfyld med fillna(). Fjern med 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 nullStrategier til fillna
Udfyld manglende værdier med en konstant, fremadrettet udfyldning (ffill), bagudrettet udfyldning (bfill) eller kolonnens gennemsnit.
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 meanÆndring af datatyper
Brug astype() til at konvertere kolonnetyper. Brug pd.to_datetime() til fortolkning af datoer og pd.to_numeric med errors="coerce" til sikker numerisk konvertering.
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)Rensning af strenge
Pandas' .str-accessor giver vektoriserede strengoperationer: 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 / CarolOmdøbning og omarrangering af kolonner
Omdøb med df.rename(columns={"old":"new"}). Omarrangér ved at indeksere med en liste.
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']Registrering af dubletter
Find dubletter med duplicated(), og fjern dem med 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 til transformationer af rækker/kolonner
df.apply(func, axis=1) anvender en funktion på hver række. axis=0 anvender den på hver kolonne.
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)Hurtigt tjek
Hvad gør df.fillna(method="ffill")?
Opsummering
Brug pd.merge til SQL-lignende sammenføjninger og pd.concat til stabling. Håndtér NaN med isna(), fillna() og dropna(). Rens strenge med .str-accessoren. Konvertér typer med astype() og pd.to_datetime().
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 320
Ofte stillede spørgsmål
Er lektionen “Fletning, join og datarensning” gratis?
Ja — hele teksten til “Fletning, join og datarensning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Fletning, join og datarensning”?
Kombinér DataFrames, og håndtér manglende værdier professionelt. Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python Academy?
Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Fletning, join og datarensning”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python Academy-lektion?
Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Grundlæggende om Series og DataFrame
- Indeksering, filtrering og booleske masker
- GroupBy, aggregering og pivottabeller
- Fletning, join og datarensning