Pode utilizar a seguinte sintaxe básica para efetuar uma junção cruzada em pandas:
#criar chave comum df1[' chave '] = 0 df2[' chave '] = 0 #fusão externa na chave comum (por exemplo, uma junção cruzada) df1. merge (df2, on="chave", how="externa")
O exemplo seguinte mostra como utilizar esta função na prática.
Exemplo: executar junção cruzada no Pandas
Suponhamos que temos os dois DataFrames pandas seguintes:
import pandas as pd #criar o primeiro DataFrame df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'], ' points ': [18, 22, 19, 14]}) print (df1) team points 0 A 18 1 B 22 2 C 19 3 D 14 #criar o segundo DataFrame df2 = pd. DataFrame ({' team ': ['A', 'B', 'F'], ' assists ': [4, 9, 8]}) print (df2) team assists 0 A 4 1 B 9 2 F 8
O código seguinte mostra como efetuar uma junção cruzada nos dois DataFrames:
#criar chave comum df1[' chave '] = 0 df2[' chave '] = 0 #realizar junção cruzada df3 = df1. merge (df2, on="key", how="outer") #drop key columm del df3[' chave '] #ver resultados 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
O resultado é um DataFrame que contém todas as combinações possíveis de linhas de cada DataFrame.
Por exemplo, a primeira linha do primeiro DataFrame contém a equipa A e 18 Esta linha é comparada com todas as linhas do segundo DataFrame.
Em seguida, a segunda linha do primeiro DataFrame contém a equipa B e 22 Esta linha também é comparada com todas as linhas do segundo DataFrame.
O resultado final é um DataFrame com 12 linhas.