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' 옵션을 활용하면 됩니다. 이 방식은 대량의 데이터에서 중복되거나 일치하는 레코드를 빠르게 비교할 때 특히 유용합니다.