Pandas에서 안티 조인을 수행하는 방법


안티 조인을 사용 하면 다른 데이터세트에 일치하는 값이 없는 한 데이터세트의 모든 행을 반환할 수 있습니다.

다음 구문을 사용하여 두 Pandas DataFrame 사이의 결합 방지를 수행할 수 있습니다.

 outer = df1. merge (df2, how=' outer ', indicator= True )

anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 )

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

예: Pandas에서 안티 조인 수행

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

 import pandas as pd

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

print (df1)

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

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'F', 'G'],
                    ' points ': [18, 22, 19, 22, 29]})

print (df2)

  team points
0 to 18
1 B 22
2 C 19
3 F 22
4 G 29

다음 코드를 사용하여 두 번째 DataFrame에 일치하는 팀이 없는 첫 번째 DataFrame의 모든 행을 반환할 수 있습니다.

 #perform outer join
outer = df1. merge (df2, how=' outer ', indicator= True )

#perform anti-join
anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 )

#view results
print (anti_join)

  team points
3 D 14
4 E 30

첫 번째 DataFrame에는 정확히 두 팀이 있지만 두 번째 DataFrame에는 일치하는 팀 이름이 없는 것을 볼 수 있습니다.

안티 조인이 예상대로 작동했습니다.

최종 결과는 팀 이름이 첫 번째 DataFrame에 속하고 두 번째 DataFrame에는 속하지 않는 행만 포함하는 DataFrame입니다.

추가 리소스

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

Pandas에서 내부 조인을 수행하는 방법
Pandas에서 Left Join을 수행하는 방법
Pandas에서 교차 조인을 수행하는 방법

의견을 추가하다

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