Indholdsfortegnelse
Introduktion
Pandas er et robust og populært bibliotek til dataanalyse og manipulation i Python. En af dets kernefunktioner er merge()
-metoden, som giver mulighed for at flette data fra flere DataFrame-objekter baseret på fælles kolonner. Fusion af data frames er et vigtigt trin i mange dataanalyseopgaver, såsom at kombinere data fra forskellige kilder, tilføje yderligere oplysninger til eksisterende data og udføre sammenligninger mellem flere data sæt.
Forståelse af merge()-metoden
merge()
-metoden tager to eller flere DataFrame-objekter som input og returnerer et enkelt DataFrame-objekt, hvor rækkerne er flettet baseret på en eller flere fælles kolonner. Fusionen kan udføres ved hjælp af forskellige join-typer, herunder indre fusion, venstre fusion, højre fusion og ydre fusion.
Grundlæggende syntaks
Den grundlæggende syntaks for merge()
-metoden er som følger:
merge(right, on=None, left_on=None, right_on=None, left_index=False, right_index=False, how='inner', suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
Parametre:
* right: DataFrame-objektet, der skal flettes
* on: En kolonne eller en liste over kolonner, der bruges til at udføre fusionen
left_on:** Kolonner i det venstre DataFrame-objekt, der skal bruges til fusionen (hvis *on ikke er angivet)
right_on:** Kolonner i det højre DataFrame-objekt, der skal bruges til fusionen (hvis *on ikke er angivet)
* left_index: Booleansk værdi, der angiver, om venstre DataFrame-objekts indeks skal bruges til fusionen
* right_index: Booleansk værdi, der angiver, om højre DataFrame-objekts indeks skal bruges til fusionen
* how: Typ af fusion, der skal udføres (indvendig, venstre, højre, ydre)
* suffixes: Suffikster, der skal tilføjes til kolonnenavne i tilfælde af overlap
* copy: Booleansk værdi, der angiver, om de originale DataFrame-objekter skal kopieres, før de flettes
* indicator: Booleansk værdi, der angiver, om en indikator kolonne skal tilføjes til det flettede DataFrame-objekt for at angive, hvilken tabel hver række stammer fra
* validate: Niveau af validering, der skal udføres på de fældede data (f.eks. “en-til-en” eller “en-til-mange”)
Join-typer
merge()
-metoden understøtter fire hovedtyper af fusioner:
1. Indre fusion (inner join)
Indre fusion resulterer i et DataFrame-objekt, der kun indeholder rækker, der findes i begge de flettede DataFrame-objekter. Rækker, der ikke matcher i begge DataFrame-objekter, udelukkes fra det flettede resultat.
2. Venstre fusion (left join)
Venstre fusion resulterer i et DataFrame-objekt, der indeholder alle rækker fra venstre DataFrame-objekt og matcherækker fra højre DataFrame-objekt. Rækker i venstre DataFrame-objekt, der ikke har matchende rækker i højre DataFrame-objekt, inkluderes i det flettede resultat med null-værdier for de manglende kolonner.
3. Højre fusion (right join)
Højre fusion fungerer på samme måde som venstre fusion, men bytter venstre og højre DataFrame-objekter. Det resulterer i et DataFrame-objekt, der indeholder alle rækker fra højre DataFrame-objekt og matcherækker fra venstre DataFrame-objekt. Rækker i højre DataFrame-objekt, der ikke har matchende rækker i venstre DataFrame-objekt, inkluderes i det flettede resultat med null-værdier for de manglende kolonner.
4. Ydre fusion (outer join)
Ydre fusion resulterer i et DataFrame-objekt, der indeholder alle rækker fra både venstre og højre DataFrame-objekter, uafhængigt af om de har matchende rækker. Rækker, der ikke har matchende rækker i den anden DataFrame-objekt, inkluderes i det flettede resultat med null-værdier for de manglende kolonner.
Brugssager
merge()
-metoden bruges i forskellige scenarier, herunder:
* Kombinering af data fra flere kilder
* Tilknytning af yderligere oplysninger til eksisterende data
* Sammenligning af data fra flere data sæt
* Udførelse af gruppeoperationer på flettede data
* Oprettelse af nye funktioner og variabler baseret på flettede data
Eksempler
Lad os gennemgå nogle eksempler på, hvordan merge()
-metoden kan bruges til at flette DataFrame-objekter:
Eksempel 1: Indre fusion
Følgende eksempel viser en indre fusion af to DataFrame-objekter kaldet df1
og df2
, der deler en fælles kolonne kaldet “id”:
python
import pandas as pd
df1 = pd.DataFrame({'id': [1, 2, 3], 'navn': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'id': [2, 3, 4], 'alder': [25, 30, 35]})
df_merged = pd.merge(df1, df2, on='id')
print(df_merged)
Output:
id navn alder
0 2 Bob 25
1 3 Charlie 30
Eksempel 2: Venstre fusion
Følgende eksempel viser en venstre fusion af to DataFrame-objekter kaldet df1
og df2
, der deler en fælles kolonne kaldet “name”:
python
import pandas as pd
df1 = pd.DataFrame({'navn': ['Alice', 'Bob', 'Charlie'], 'alder': [20, 25, 30]})
df2 = pd.DataFrame({'navn': ['Alice', 'Dave'], 'køn': ['kvinde', 'mand']})
df_merged = pd.merge(df1, df2, left_on='navn', right_on='navn')
print(df_merged)
Output:
navn alder køn
0 Alice 20 kvinde
1 Bob 25 NaN
2 Charlie 30 NaN
Eksempel 3: Højre fusion
Følgende eksempel viser en højre fusion af to DataFrame-objekter kaldet df1
og df2
, der deler en fælles kolonne kaldet “navn”:
python
import pandas as pd
df1 = pd.DataFrame({'navn': ['Alice', 'Bob', 'Charlie'], 'alder': [20, 25, 30]})
df2 = pd.DataFrame({'navn': ['Alice', 'Dave'], 'køn': ['kvinde', 'mand']})
df_merged = pd.merge(df1, df2, right_on='navn', left_on='navn')
print(df_merged)
Output:
navn alder køn
0 Alice 20 kvinde
1 Alice NaN kvinde
2 Bob 25 NaN
3 Charlie 30 NaN
4 Dave NaN mand
Eksempel 4: Ydre fusion
Følgende eksempel viser en ydre fusion af to DataFrame-objekter kaldet df1
og df2
, der deler en fælles kolonne kaldet “navn”:
python
import pandas as pd
df1 = pd.DataFrame({'navn': ['Alice', 'Bob', 'Charlie'], 'alder': [20, 25, 30]})
df2 = pd.DataFrame({'navn': ['Alice', 'Dave'], 'køn': ['kvinde', 'mand']})
df_merged = pd.merge(df1, df2, on='navn', how='outer')
print(df_merged)
Output:
navn alder køn
0 Alice 20 kvinde
1 Bob 25 NaN
2 Charlie 30 NaN
3 Dave NaN mand
Konklusion
merge()
-metoden i Pandas er et kraftfuldt værktøj, der giver mulighed for fleksibel og effektiv fletning af DataFrame-objekter baseret på fælles kolonner. Ved at forstå de forskellige join-typer og muligheder