So führen sie einen cross join in pandas durch (mit beispiel)


Sie können die folgende grundlegende Syntax verwenden, um einen Cross-Join in Pandas durchzuführen:

 #create common key
df1[' key '] = 0
df2[' key '] = 0

#outer merge on common key (eg a cross join)
df1. merge (df2, on=' key ', how=' outer ')

Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel: Durchführen eines Cross Joins in Pandas

Nehmen wir an, wir haben die folgenden zwei Panda-DataFrames:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14]})

print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'F'],
                    ' assists ': [4, 9, 8]})

print (df2)

  team assists
0 to 4
1 B 9
2 F 8

Der folgende Code zeigt, wie ein Cross-Join für die beiden DataFrames durchgeführt wird:

 #create common key
df1[' key '] = 0
df2[' key '] = 0

#perform cross join
df3 = df1. merge (df2, on=' key ', how=' outer ')

#drop key column
del df3[' key ']

#view results
print (df3)

   team_x points team_y assists
0 A 18 A 4
1 A 18 B 9
2 A 18 F 8
3 B 22 A 4
4 B 22 B 9
5 B 22 F 8
6 C 19 A 4
7 C 19 B 9
8 C 19 F 8
9 D 14 A 4
10 D 14 B 9
11 D 14 F 8

Das Ergebnis ist ein DataFrame, der alle möglichen Zeilenkombinationen aus jedem DataFrame enthält.

Beispielsweise enthält die erste Zeile des ersten DataFrame Team A und 18 Punkte. Diese Zeile entspricht jeder Zeile des zweiten DataFrame.

Dann enthält die zweite Zeile des ersten DataFrame Team B und 22 Punkte. Diese Zeile entspricht auch jeder Zeile des zweiten DataFrame.

Das Endergebnis ist ein DataFrame mit 12 Zeilen.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:

So führen Sie einen Links-Join in Pandas durch
So führen Sie einen Links-Join in Pandas durch
Pandas beitreten oder fusionieren: Was ist der Unterschied?

Einen Kommentar hinzufügen

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