Pandas DataFrame 간 공통 열(교집합) 구하기
두 개의 DataFrame에서 공통으로 존재하는 열을 추출하려면 intersection() 메서드를 사용하면 됩니다. 이 메서드는 집합 연산의 교집합 개념을 인덱스 객체(Index object)에 적용하여, 양쪽 DataFrame에 모두 포함된 열 이름만 반환합니다.
먼저 예제에 사용할 두 개의 DataFrame을 생성해 보겠습니다.
import pandas as pd
# dataframe1 생성
dataFrame1 = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
})
# dataframe2 생성
dataFrame2 = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Units_Sold": [100, 110, 150, 80, 200, 90]
})위 코드에서 dataFrame1은 Car, Cubic_Capacity, Reg_Price 세 개의 열을 가지고 있고, dataFrame2는 Car, Units_Sold 두 개의 열을 가지고 있습니다. 이제 한쪽 DataFrame의 columns 속성에 intersection()을 호출하고 다른 DataFrame의 columns를 인자로 전달하면 공통 열을 손쉽게 구할 수 있습니다.
dataFrame2.columns.intersection(dataFrame1.columns)전체 예제 코드
import pandas as pd
# dataframe1 생성
dataFrame1 = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
})
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)
# intersection()으로 공통 열 구하기
res = dataFrame2.columns.intersection(dataFrame1.columns)
print("\n공통 열...\n", res)실행 결과
Dataframe1...
Car Cubic_Capacity Reg_Price
0 Bentley 2000 7000
1 Lexus 1800 1500
2 Tesla 1500 5000
3 Mustang 2500 8000
4 Mercedes 2200 9000
5 Jaguar 3000 6000
Dataframe2...
Car Units_Sold
0 BMW 100
1 Lexus 110
2 Tesla 150
3 Mustang 80
4 Mercedes 200
5 Jaguar 90
공통 열...
Index(['Car'], dtype='object')실행 결과를 보면 두 DataFrame에 모두 존재하는 유일한 열인 'Car'가 Index 형태로 반환된 것을 확인할 수 있습니다. 이처럼 intersection() 메서드를 활용하면 여러 DataFrame을 함께 다룰 때 공통 열을 빠르고 간편하게 파악할 수 있어, 데이터 병합이나 전처리 작업 전에 열 구조를 비교하는 데 매우 유용합니다.