Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame에서 공통 요소 찾는 방법 – merge() 메서드 활용 가이드

Pandas DataFrame에서 두 데이터프레임 간의 공통 요소를 찾으려면 merge() 메서드를 사용하면 됩니다. 이때 기준이 되는 열(컬럼) 이름 목록을 on 매개변수로 지정하면, 두 DataFrame에 모두 동일하게 존재하는 행만 깔끔하게 추출할 수 있습니다.

처리 단계

  • 2차원의 크기 변경이 가능한 표 형태 데이터 df1을 생성합니다.

  • 입력 DataFrame인 df1을 출력합니다.

  • 비교 대상이 되는 또 다른 2차원 표 형태 데이터 df2를 생성합니다.

  • 입력 DataFrame인 df2를 출력합니다.

  • merge() 메서드를 사용하여 두 DataFrame의 공통 요소를 찾습니다.

  • 공통 요소로 구성된 DataFrame을 출력합니다.

예제 코드

import pandas as pd

df1 = pd.DataFrame(
   {
      "x": [5, 2, 7, 0],
      "y": [4, 7, 5, 1],
      "z": [9, 3, 5, 1]
   }
)
df2 = pd.DataFrame(
   {
      "x": [5, 2, 7, 0, 11, 12],
      "y": [4, 7, 5, 1, 19, 20],
      "z": [9, 3, 5, 1, 29, 30]
   }
)

print("입력 DataFrame 1:\n", df1)
print("입력 DataFrame 2:\n", df2)

common = df1.merge(df2, on=['x', 'y', 'z'])
print("DataFrame 1과 2의 공통 요소:\n", common)

실행 결과

입력 DataFrame 1:
x y z
0 5 4 9
1 2 7 3
2 7 5 5
3 0 1 1

입력 DataFrame 2:
x y z
0 5 4 9
1 2 7 3
2 7 5 5
3 0 1 1
4 11 19 29
5 12 20 30

DataFrame 1과 2의 공통 요소:
x y z
0 5 4 9
1 2 7 3
2 7 5 5
3 0 1 1

참고 사항

merge() 메서드는 기본적으로 내부 조인(inner join) 방식으로 동작합니다. 따라서 how 매개변수를 별도로 지정하지 않아도 두 DataFrame에 모두 존재하는 행만 결과로 반환됩니다. 반대로 합집합 형태의 결과가 필요하다면 how='outer' 옵션을 활용하면 됩니다. 이 방식은 대량의 데이터에서 중복되거나 일치하는 레코드를 빠르게 비교할 때 특히 유용합니다.