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