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

Python Pandas – 두 데이터프레임 간 공통 행 찾는 방법

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과 유사하게 동작하며, 대용량 데이터에서 두 테이블 간 교집합을 손쉽게 확인할 때 매우 유용합니다.