Pandas에서 두 데이터프레임(DataFrame) 사이의 공통 행을 찾으려면 merge() 메서드를 사용합니다. how='inner'(내부 조인) 옵션을 지정하면 두 데이터프레임에 모두 존재하는 행만 결과로 반환됩니다.
먼저 두 개의 열을 가진 첫 번째 데이터프레임을 생성해 보겠습니다.
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)이어서 동일한 구조의 두 번째 데이터프레임을 생성합니다.
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
"Units": [100, 250, 150, 80, 130, 90]
}
)두 데이터프레임의 공통 행을 찾는 핵심 코드는 다음과 같습니다.
dataFrame1.merge(dataFrame2, how='inner', indicator=False)
전체 예제 코드
아래는 위 과정 전체를 담은 완성된 코드입니다.
import pandas as pd
# DataFrame1 생성
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
"Units": [100, 150, 110, 80, 110, 90]
}
)
print("DataFrame1 ...\n", dataFrame1)
# DataFrame2 생성
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
"Units": [100, 250, 150, 80, 130, 90]
}
)
print("\nDataFrame2 ...\n", dataFrame2)
# 두 데이터프레임이 동일한지 확인
print("\n두 데이터프레임은 동일한가요? ", dataFrame1.equals(dataFrame2))
# 두 데이터프레임 사이의 공통 행 찾기
resData = dataFrame1.merge(dataFrame2, how='inner', indicator=False)
print("\n두 데이터프레임의 공통 행 ...\n", resData)실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
DataFrame1 ...
Car Units
0 BMW 100
1 Lexus 150
2 Audi 110
3 Tesla 80
4 Bentley 110
5 Jaguar 90
DataFrame2 ...
Car Units
0 BMW 100
1 Lexus 250
2 Audi 150
3 Mustang 80
4 Bentley 130
5 Jaguar 90
두 데이터프레임은 동일한가요? False
두 데이터프레임의 공통 행 ...
Car Units
0 BMW 100
1 Jaguar 90정리
예제에서 볼 수 있듯이, 두 데이터프레임은 서로 완전히 동일하지 않으며(equals() 결과가 False), merge(how='inner')를 적용하면 BMW(100대)와 Jaguar(90대)처럼 모든 열 값이 일치하는 행만 추출됩니다. 이 방법은 SQL의 INNER JOIN과 유사하게 동작하며, 대용량 데이터에서 두 테이블 간 교집합을 손쉽게 확인할 때 매우 유용합니다.