Pandas에서 두 개의 Index 객체 간의 교집합(공통 요소)을 구하려면 index1.intersection(index2) 메서드를 사용하면 됩니다. 또한 sort 매개변수를 활용하면 교집합 결과를 정렬된 상태로 얻을 수 있습니다.
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
이제 Pandas 인덱스 index1과 index2를 생성합니다.
index1 = pd.Index([4, 3, 2, 1]) index2 = pd.Index([8, 2, 6, 4])
생성된 index1과 index2를 화면에 출력해 확인합니다.
print("Pandas Index1...\n",index1)
print("Pandas Index2...\n",index2)두 인덱스의 교집합을 수행합니다. 이때 sort 매개변수를 사용하여 결과를 정렬합니다.
res = index1.intersection(index2, sort=None)
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# Pandas 인덱스 index1과 index2 생성
index1 = pd.Index([4, 3, 2, 1])
index2 = pd.Index([8, 2, 6, 4])
# index1과 index2 출력
print("Pandas Index1...\n",index1)
print("Pandas Index2...\n",index2)
# index1과 index2의 요소 개수 반환
print("\nNumber of elements in index1...\n",index1.size)
print("\nNumber of elements in index2...\n",index2.size)
# 교집합 수행
# sort 매개변수를 사용하여 결과 정렬
res = index1.intersection(index2, sort=None)
# 두 인덱스의 교집합 결과를 정렬하여 출력
print("\nThe index1 and index2 intersection (sorted result)...\n",res)실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Pandas Index1... Int64Index([4, 3, 2, 1], dtype='int64') Pandas Index2... Int64Index([8, 2, 6, 4], dtype='int64') Number of elements in index1... 4 Number of elements in index2... 4 The index1 and index2 intersection (sorted result)... Int64Index([2, 4], dtype='int64')
출력 결과에서 볼 수 있듯이, index1([4, 3, 2, 1])과 index2([8, 2, 6, 4])의 공통 요소는 2와 4이며, sort=None 옵션을 적용하면 교집합 결과가 [2, 4]로 정렬되어 반환됩니다. 참고로 sort 매개변수는 None(기본값), False, True 중 하나를 지정할 수 있으며, True를 명시적으로 설정하면 항상 정렬된 결과를 보장받을 수 있습니다.