Sammanslagning av två DataFrames med Pandas merge()
Introduktion
Funktionen merge()
i Pandas är ett mycket användbart verktyg för att sammanföra och kombinera två DataFrame-objekt, baserat på en delad kolumn eller index. Denna funktion är ovärderlig för diverse datahanteringsuppgifter, som att slå ihop kundinformation med orderdata, förena finansiella rapporter eller integrera information från skilda källor.
merge()
erbjuder ett flexibelt och intuitivt sätt att kombinera DataFrames, med olika sammanfogningsmetoder och inställningar som ger användaren betydande kontroll över processen. Den här texten ger en omfattande genomgång av Pandas merge()
, inklusive syntax, inställningar, olika sammanfogningstyper och exempel på hur funktionen kan användas. Genom att förstå och kunna använda merge()
kan du markant förbättra din förmåga att hantera och analysera data i Python.
Syntax för Pandas merge()
Grundstrukturen för Pandas merge()
är som följer:
pandas.merge(left, right, on=None, left_on=None, right_on=None, left_index=False, right_index=False, how='inner', suffixes=('_x', '_y'), indicator=False, validate=None)
Parametrar för Pandas merge()
- left: Den första DataFrame som ska sammanfogas.
- right: Den andra DataFrame som ska sammanfogas.
- on: Namnet på den kolumn eller index som de två DataFrames ska sammanfogas utifrån.
- left_on: Namnet på kolumnen i den vänstra DataFrame som används för sammanfogningen.
- right_on: Namnet på kolumnen i den högra DataFrame som används för sammanfogningen.
- left_index: Ett booleskt värde som visar om indexet i den vänstra DataFrame ska användas för sammanfogningen.
- right_index: Ett booleskt värde som visar om indexet i den högra DataFrame ska användas för sammanfogningen.
- how: Sammanfogningstyp. Alternativen är: ’inner’, ’outer’, ’left’, ’right’ eller ’cross’.
- suffixes: En tupel eller lista med strängar som läggs till kolumnnamn som är dubbletter i de sammanslagna DataFrames.
- indicator: Ett booleskt värde som anger om en kolumn som visar sammanfogningstypen ska inkluderas i den sammanslagna DataFrame.
- validate: En sträng som anger valideringsnivån för sammanfogningen, t.ex. ’one_to_one’, ’one_to_many’ eller ’many_to_many’.
Olika sammanfogningstyper
merge()
-funktionen stöder dessa olika sammanfogningstyper:
- Inner (inre): Enbart rader som har matchande värden i den gemensamma kolumnen eller indexet sammanfogas.
- Outer (yttre): Alla rader från båda DataFrames sammanfogas, även om matchande värden inte hittas.
- Left (vänster): Alla rader från den vänstra DataFrame sammanfogas, även om de inte har motsvarighet i den högra.
- Right (höger): Alla rader från den högra DataFrame sammanfogas, även om de inte har motsvarighet i den vänstra.
- Cross (kors): Varje rad i den vänstra DataFrame kombineras med varje rad i den högra, oavsett matchning.
Användningsområden för Pandas merge()
merge()
är mycket användbar inom datahantering och analys. Här är några exempel:
- Sammanslagning av data från flera källor: Kombinera data från olika källor, som kundinformation och transaktionsdata, för att skapa en mer heltäckande bild.
- Kombinera finansiella rapporter: Slå samman finansiella rapporter från olika tidsperioder eller enheter för att analysera trender och identifiera mönster.
- Integrera data från olika system: Kombinera data från olika affärssystem, som CRM och ERP, för att skapa en enhetlig översikt.
- Analysera kundbeteende: Sammanför kunddata med transaktionsdata för att analysera beteendemönster, hitta trender och förbättra kundupplevelsen.
- Utföra datautvinning: Använd
merge()
för att extrahera data från flera källor, skapa nya insikter och göra prognoser.
Exempel på hur Pandas merge() används
Nedan följer några exempel som visar hur merge()
-funktionen kan användas:
import pandas as pd
# Inre sammanfogning
left = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
right = pd.DataFrame({'id': [2, 3, 4], 'age': [25, 30, 35]})
merged = pd.merge(left, right, on='id')
print(merged)
# Yttre sammanfogning
left = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
right = pd.DataFrame({'id': [2, 3, 4], 'age': [25, 30, 35], 'city': ['New York', 'London', 'Paris']})
merged = pd.merge(left, right, on='id', how='outer')
print(merged)
# Vänster sammanfogning
left = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
right = pd.DataFrame({'id': [2, 3, 4], 'age': [25, 30, 35], 'city': ['New York', 'London', 'Paris']})
merged = pd.merge(left, right, on='id', how='left')
print(merged)
# Höger sammanfogning
left = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
right = pd.DataFrame({'id': [2, 3, 4], 'age': [25, 30, 35], 'city': ['New York', 'London', 'Paris']})
merged = pd.merge(left, right, on='id', how='right')
print(merged)
# Kors sammanfogning
left = pd.DataFrame({'id': [1, 2, 3], 'name': ['Alice', 'Bob', 'Charlie']})
right = pd.DataFrame({'id': [2, 3, 4], 'age': [25, 30, 35], 'city': ['New York', 'London', 'Paris']})
merged = pd.merge(left, right, how='cross')
print(merged)
Slutsats
Pandas merge()
-funktion är ett kraftfullt verktyg för att sammanföra och kombinera DataFrame-objekt i Python. Genom att förstå syntaxen, inställningarna, sammanfogningstyperna och hur merge()
används, kan du effektivt hantera och analysera data från olika källor och system. merge()
underlättar