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

Python Pandas – & 연산자로 두 DataFrame의 공통 열 찾기

Python Pandas – & 연산자로 두 DataFrame의 공통 열 찾기

네, 가능합니다. 파이썬 Pandas에서는 & 연산자(교집합 연산)를 사용하여 두 DataFrame 간의 공통 열(column)을 쉽게 찾을 수 있습니다. & 연산자는 집합 연산 중 교집합(intersection)을 수행하며, DataFrame의 .columns 속성에 적용하면 두 DataFrame이 공유하는 열 이름만 추출할 수 있습니다.

먼저 예제에 사용할 두 개의 DataFrame을 생성해 보겠습니다.

# dataframe1 생성
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000]
})
print("Dataframe1...\n", dataFrame1)

# dataframe2 생성
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Units_Sold": [100, 110, 150, 80, 200, 90]
})
print("Dataframe2...\n", dataFrame2)

& 연산자를 사용해 공통 열을 구하는 방법은 다음과 같습니다.

res = dataFrame1.columns & dataFrame2.columns

두 DataFrame은 모두 "Car"라는 열을 가지고 있으므로, 결과에는 "Car"만 포함됩니다.

전체 예제 코드

import pandas as pd

# dataframe1 생성
dataFrame1 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000]
})
print("Dataframe1...\n", dataFrame1)

# dataframe2 생성
dataFrame2 = pd.DataFrame({
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Units_Sold": [100, 110, 150, 80, 200, 90]
})
print("Dataframe2...\n", dataFrame2)

# & 연산자로 공통 열 구하기
res = dataFrame1.columns & dataFrame2.columns
print("\nCommon columns...\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Dataframe1...
       Car  Cubic_Capacity
0      BMW            2000
1    Lexus            1800
2    Tesla            1500
3  Mustang            2500
4 Mercedes            2200
5   Jaguar            3000
Dataframe2...
       Car  Units_Sold
0      BMW         100
1    Lexus         110
2    Tesla         150
3  Mustang          80
4 Mercedes         200
5   Jaguar          90

Common columns...
Index(['Car'], dtype='object')

실행 결과를 보면 두 DataFrame의 공통 열인 'Car'만 Index 객체 형태로 출력된 것을 확인할 수 있습니다.

추가 팁: | 연산자로 합집합 구하기

반대로 두 DataFrame의 모든 열(합집합)을 구하고 싶다면 | 연산자를 사용하면 됩니다.

all_columns = dataFrame1.columns | dataFrame2.columns
print(all_columns)
# Index(['Car', 'Cubic_Capacity', 'Units_Sold'], dtype='object')

이처럼 Pandas의 Index 객체는 집합 연산자(&, |)를 지원하기 때문에 별도의 반복문 없이 열 비교 작업을 간결하게 처리할 수 있습니다.