Een outer join uitvoeren in panda's (met voorbeeld)


Een outside join is een type join dat alle rijen van twee panda’s DataFrames retourneert.

U kunt de volgende basissyntaxis gebruiken om een outside join in panda’s uit te voeren:

 import pandas as pd

df1. merge (df2, on=' some_column ', how=' outer ')

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: Hoe u een outside join uitvoert in Pandas

Laten we zeggen dat we de volgende twee panda-dataframes hebben die informatie bevatten over verschillende basketbalteams:

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'J', 'K'],
                    ' assists ': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 14
5 F 11
6 G 20
7:28 a.m.

print (df2)

  team assists
0 to 4
1 B 9
2 C 14
3 D 13
4 D 10
5K 8

We kunnen de volgende code gebruiken om een outside join uit te voeren, waarbij rijen tussen DataFrames op elkaar worden afgestemd op basis van de teamkolomwaarden en waarbij alle rijen van beide DataFrames worden behouden:

 #perform outer join
df1. merge (df2, on=' team ', how=' outer ')


        team points assists
0 to 18.0 4.0
1 B 22.0 9.0
2 C 19.0 14.0
3D 14.0 13.0
4 E 14.0 NaN
5 F 11.0 NaN
6G 20.0 NaN
7 H 28.0 NaN
8 J NaN 10.0
9K NaN 8.0

Het resultaat is een DataFrame dat alle rijen in elk DataFrame bevat.

Houd er rekening mee dat NaN- waarden zijn ingevuld voor elke rij waarin de teamkolomwaarde niet bestond in beide DataFrames.

Let op : U kunt hier de volledige documentatie voor de samenvoegfunctie vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:

Hoe voer je een anti-join uit in Pandas?
Hoe u een inner join uitvoert in Pandas
Hoe u een cross-join uitvoert in Panda’s

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert