Pandas DataFrame merge() Metode
Pandas er en populær open-source datavidenskabsbibliotek til Python, der er en favorit blandt dataanalytikere og data scientists. Biblioteket tilbyder mange funktioner og metoder til at håndtere og manipulere data, herunder evnen til at merge dataframes. Dataframe.merge() metoden i Pandas giver mulighed for at kombinere to dataframes baseret på en fælles kolonne. Denne metode er nyttig, når vi ønsker at arbejde med relaterede data fra forskellige datakilder. I denne artikel vil vi udforske, hvordan man bruger merge() metoden til at kombinere dataframes i Pandas.
Introduktion til DataFrame.merge() metoden
merge() metoden i Pandas er en kraftfuld funktion til at kombinere to dataframes baseret på en eller flere fælles kolonner. Når vi merger dataframes, kombineres rækker, der har ens værdier i de fælles kolonner, og nye kolonner kan tilføjes for at repræsentere de kombinerede data. Denne metode kan udføres på forskellige måder, afhængigt af hvad vi ønsker at opnå. Vi kan f.eks. merge dataframes baseret på indeks, kolonnenavne, flere fælles kolonner eller bruge forskellige typer af merge-tilstande som inner join, outer join, left join eller right join. Vi vil udforske disse forskellige scenarier nedenfor.
Grundlæggende brug af DataFrame.merge() metoden
For at starte med at merge dataframes i Pandas, skal vi først importere Pandas biblioteket og oprette vores dataframes. Lad os se et eksempel:
import pandas as pd# Opret dataframe 1df1 = pd.DataFrame({A: [1, 2, 3], B: [a, b, c]})# Opret dataframe 2df2 = pd.DataFrame({B: [a, b, d], C: [x, y, z]})# Merge dataframesmerged_df = df1.merge(df2, on=B)print(merged_df)
I ovenstående eksempel har vi oprettet to dataframes, df1 og df2. Vi vil merge disse dataframes baseret på den fælles kolonne B. Ved at bruge merge() metoden og angive B som argument for parameteren on, bliver dataframes kombineret, og der skabes en ny dataframe, merged_df. Vi udskriver denne dataframe for at se resultatet. Outputtet vil være som følger:
A B C0 1 a x1 2 b y
Som vi kan se, har de kombinerede rækker fra df1 og df2 værdierne a og b i den fælles kolonne B, og den nye dataframe, merged_df, indeholder nu rækkerne fra begge dataframes.
Forskellige typer af merge-tilstande
Udover at merge dataframes baseret på en enkelt fælles kolonne, kan vi også udføre forskellige typer af merge-tilstande. Lad os se nærmere på nogle af disse tilstande:
Inner Join
Inner join er standard merge-tilstanden i Pandas. Ved inner join beholder vi kun de rækker, der har matchende værdier i de fælles kolonner i begge dataframes. Lad os se et eksempel:
# Inner joininner_join_df = df1.merge(df2, on=B, how=inner)print(inner_join_df)
I ovenstående eksempel bruger vi how parameteren til at specificere merge-tilstanden som inner. Outputtet vil være som følger:
A B C0 1 a x1 2 b y
Som vi kan se, er kun de rækker, der har matchende værdier i kolonnen B i både df1 og df2, inkluderet i den kombinerede dataframe, inner_join_df.
Outer Join
Outer join bevarer alle rækker fra begge dataframes og fylder manglende værdier med NaN (not a number). Lad os se et eksempel:
# Outer joinouter_join_df = df1.merge(df2, on=B, how=outer)print(outer_join_df)
I ovenstående eksempel bruger vi how parameteren til at specificere merge-tilstanden som outer. Outputtet vil være som følger:
A B C0 1.0 a x1 2.0 b y2 3.0 c NaN3 NaN d z
Som vi kan se, inkluderer den kombinerede dataframe, outer_join_df, alle rækker fra både df1 og df2. Dog er der en manglende værdi, NaN, i kolonnen C for rækken med værdien c fra df1 og rækken med værdien d fra df2.
Left Join
Left join bevarer alle rækker fra den venstre dataframe og fylder manglende værdier med NaN. Lad os se et eksempel:
# Left joinleft_join_df = df1.merge(df2, on=B, how=left)print(left_join_df)
I ovenstående eksempel bruger vi how parameteren til at specificere merge-tilstanden som left. Outputtet vil være som følger:
A B C0 1 a x1 2 b y2 3 c NaN
Som vi kan se, bevarer den kombinerede dataframe, left_join_df, alle rækker fra df1 og fylder manglende værdier med NaN i kolonnen C for rækken med værdien c.
Right Join
Right join bevarer alle rækker fra den højre dataframe og fylder manglende værdier med NaN. Lad os se et eksempel:
# Right joinright_join_df = df1.merge(df2, on=B, how=right)print(right_join_df)
I ovenstående eksempel bruger vi how parameteren til at specificere merge-tilstanden som right. Outputtet vil være som følger:
A B C0 1.0 a x1 2.0 b y2 NaN d z
Som vi kan se, bevarer den kombinerede dataframe, right_join_df, alle rækker fra df2 og fylder manglende værdier med NaN i kolonnen A for rækken med værdien d.
Andre muligheder med merge() metoden
Der er mange måder at bruge merge() metoden på i Pandas, afhængigt af vores specifikke krav. Udover de grundlæggende merges, som vi så tidligere, kan vi også udføre:
- Merge baseret på flere fælles kolonner
- Merge baseret på kolonnenavne i stedet for kolonneindeks
- Tilføjelse af præfiks eller suffiks til kolonnenavne for at undgå duplikerede navne
- Specifikation af merge-tilstanden ved hjælp af merge() metoden i stedet for how parameteren
Disse muligheder og mere vil blive udforsket i detaljer i kommende artikler.
Vi har nu set, hvordan man bruger merge() metoden i Pandas til at kombinere dataframes og udføre forskellige merge-tilstande. Denne metode er afgørende, når vi arbejder med relaterede data fra forskellige kilder og ønsker at kombinere dem for at opnå en mere omfattende forståelse af vores data. Ved at lære at bruge merge() metoden effektivt kan vi få større fleksibilitet og muligheder i vores dataanalyse og manipulation.
Ofte stillede spørgsmål
Hvad er formålet med merge() metoden i Pandas DataFrame?
Hvordan udføres en merge-operation i Pandas DataFrame?
Hvad sker der, hvis merge-operationen ikke finder nogen ens værdier i de angivne kolonner?
Hvad sker der, hvis man ønsker at merge DataFrames baseret på flere kolonner?
Hvordan specificerer man hvilken type merge-operation der skal udføres?
Hvad er forskellen mellem inner og outer merge-operationer?
Hvordan håndteres kolonner med samme navn i merge-operationen?
Hvad betyder left og right merge-operationer?
Hvordan håndteres duplicerede kolonnenavne i merge-operationen?
Kan man merge flere end to DataFrames på samme tid?
Andre populære artikler: JavaScripts historie • How To Sort a List • HTML track label-attribut • MySQL CURRENT_TIME() Funktion • HTML DOM Style boxShadow Property • CSS scroll-snap-type-egenskaben: En dybdegående gennemgang • How To Create a Full Width Table • TensorFlow Models: En dybdegående introduktion • Deep Learning • HTML option label Attribut • Java int Keyword • Hvad er ADO CancelUpdate-metoden? • PHP Operators • Java Numbers and Strings • Checkbox indeterminate-tilstanden i HTML DOM Input • Introduktion til Blockchain • Python – Opdatering af Tuples • Python String isdigit() Metode: En Komplet Guide • Javascript extends og class extends • SVG Reference