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 A 와 18개의 포인트가 포함되어 있습니다. 이 줄은 두 번째 DataFrame의 각 줄에 해당합니다.
그런 다음 첫 번째 DataFrame의 두 번째 행에는 Team B 와 22개의 포인트가 포함됩니다. 이 행은 두 번째 DataFrame의 각 행에도 해당합니다.
최종 결과는 12개 행이 있는 DataFrame입니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas에서 Left Join을 수행하는 방법
Pandas에서 Left Join을 수행하는 방법
Pandas 조인 또는 병합: 차이점은 무엇인가요?