Pandas에서 데이터 유형이 서로 다른 두 Index 객체의 합집합(Union)을 구하려면 index1.union(index2) 메서드를 사용하면 됩니다. 이 메서드는 두 인덱스에 포함된 모든 고유한 요소를 중복 없이 하나의 새로운 인덱스로 결합해 줍니다.
필요한 라이브러리 불러오기
먼저 pandas 라이브러리를 임포트합니다.
import pandas as pd
인덱스 객체 생성하기
정수형 요소를 가진 첫 번째 인덱스와 문자열 요소를 가진 두 번째 인덱스를 각각 생성합니다.
index1 = pd.Index([10, 20, 30, 40, 50])
index2 = pd.Index(['p', 'q', 'r', 's', 't', 'u'])
생성한 인덱스 출력하기
두 인덱스의 내용을 화면에 출력해 확인합니다.
print("Pandas Index1...\n", index1)
print("Pandas Index2...\n", index2)
서로 다른 데이터 유형의 합집합 수행하기
union() 메서드를 호출하여 유형이 다른 두 인덱스의 합집합을 계산합니다.
res = index1.union(index2)
전체 예제 코드
다음은 위 과정을 모두 포함한 완전한 예제 코드입니다.
import pandas as pd
# 정수형 인덱스와 문자열형 인덱스 생성
index1 = pd.Index([10, 20, 30, 40, 50])
index2 = pd.Index(['p', 'q', 'r', 's', 't', 'u'])
# 인덱스 출력
print("Pandas Index1...\n", index1)
print("Pandas Index2...\n", index2)
# 각 인덱스의 요소 개수 확인
print("\nNumber of elements in index1...\n", index1.size)
print("\nNumber of elements in index2...\n", index2.size)
# 데이터 유형이 다른 두 인덱스의 합집합 수행
res = index1.union(index2)
# 합집합 결과 출력
print("\nThe index1 and index2 Union...\n", res)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index1... Int64Index([10, 20, 30, 40, 50], dtype='int64') Pandas Index2... Index(['p', 'q', 'r', 's', 't', 'u'], dtype='object') Number of elements in index1... 5 Number of elements in index2... 6 The index1 and index2 Union... Index([10, 20, 30, 40, 50, 'p', 'q', 'r', 's', 't', 'u'], dtype='object')
결과 분석
정수형(int64) 인덱스와 문자열형(object) 인덱스가 합쳐지면서, 최종 결과 인덱스는 숫자와 문자열을 모두 담을 수 있도록 dtype='object'로 자동 변환됩니다. 또한 union()은 두 인덱스의 모든 고유 요소를 포함하며, 기본적으로 값이 정렬된 형태로 반환됩니다.
참고로, 최신 버전의 Pandas에서는 Int64Index가 더 이상 별도 클래스로 표시되지 않고 일반 Index로 통합되어 출력될 수 있습니다. 동작 방식 자체는 동일하니 참고하시기 바랍니다.