Pandas에서 교차 조인을 수행하는 방법(예제 포함)


다음 기본 구문을 사용하여 Pandas에서 교차 조인을 수행할 수 있습니다.

 #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 ')

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예: Pandas에서 교차 조인 수행

다음 두 개의 팬더 DataFrame이 있다고 가정해 보겠습니다.

 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

다음 코드는 두 DataFrame에서 교차 조인을 수행하는 방법을 보여줍니다.

 #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

결과는 각 DataFrame에서 가능한 모든 행 조합을 포함하는 DataFrame입니다.

예를 들어 첫 번째 DataFrame의 첫 번째 행에는 Team A18개의 포인트가 포함되어 있습니다. 이 줄은 두 번째 DataFrame의 각 줄에 해당합니다.

그런 다음 첫 번째 DataFrame의 두 번째 행에는 Team B22개의 포인트가 포함됩니다. 이 행은 두 번째 DataFrame의 각 행에도 해당합니다.

최종 결과는 12개 행이 있는 DataFrame입니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 Left Join을 수행하는 방법
Pandas에서 Left Join을 수행하는 방법
Pandas 조인 또는 병합: 차이점은 무엇인가요?

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다