logo

Verschillende soorten joins in panda's

De Pandas-module bevat verschillende functies om verschillende bewerkingen op dataframes uit te voeren, zoals samenvoegen, samenvoegen, verwijderen, toevoegen, enz. In dit artikel gaan we de verschillende soorten samenvoegingsbewerkingen bespreken die op Pandas kunnen worden uitgevoerd. Dataframe. Er zijn vijf soorten joins Panda's .

  • Innerlijke verbinding
  • Linker buitenste verbinding
  • Rechter buitenste verbinding
  • Volledige Outer Join of gewoon Outer Join
  • Index-deelname

Om verschillende soorten joins te begrijpen, zullen we eerst twee DataFrames maken, namelijk A En B .



Dataframe a:

Python3








# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # printing the dataframe> a>

>

>

Uitgang:

Gegevensframe b:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # printing the dataframe> b>

>

>

Uitgang:

Soorten joins in panda's

We zullen deze twee dataframes gebruiken om de verschillende soorten joins te begrijpen.

Panda's Innerlijke verbinding

Inner join is het meest voorkomende type join waarmee u gaat werken. Het retourneert een dataframe met alleen die rijen die gemeenschappelijke kenmerken hebben. Dit is vergelijkbaar met het snijpunt van twee sets.

Panda's Inner Join

Voorbeeld:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # inner join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'inner'>)> # display dataframe> df>

>

>

Uitgang:

Panda's Links meedoen

Bij een left outside join worden alle records uit het eerste Dataframe weergegeven, ongeacht of de sleutels uit het eerste Dataframe in het tweede Dataframe te vinden zijn. Terwijl voor het tweede Dataframe alleen de records met de sleutels uit het tweede Dataframe die in het eerste Dataframe te vinden zijn, worden weergegeven.

links-join Voorbeeld:

Python3

hoeveel weken in een maand




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # left outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'left'>)> # display dataframe> df>

>

>

Uitgang:

Panda's Rechter buitenste verbinding

Voor een rechtse join worden alle records uit het tweede dataframe weergegeven. Alleen de records met de sleutels in het eerste Dataframe die in het tweede Dataframe te vinden zijn, worden echter weergegeven.

Panda's rechtsbuiten

Voorbeeld:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # right outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'right'>)> # display dataframe> df>

>

>

tekenreeks is leeg

Uitgang:

Panda's Volledige buitenste join

Een volledige buitenste join retourneert alle rijen van het linker dataframe en alle rijen van het rechter dataframe, en vergelijkt rijen waar mogelijk met NaN's elders. Maar als het dataframe compleet is, krijgen we dezelfde uitvoer.

Panda's volledige buitenste verbinding

Voorbeeld:

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # full outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'outer'>)> # display dataframe> df>

>

>

Uitgang:

Panda's Index Doe mee

Om het Dataframe op indices samen te voegen, geeft u de linker_index En juiste_index argumenten als True, dat wil zeggen dat beide dataframes worden samengevoegd in een index met behulp van de standaard Inner Join.

Python3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # index join> df>=> pd.merge(a, b, left_index>=>True>, right_index>=>True>)> # display dataframe> df>

>

>

Uitgang: