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

Python Pandas – 데이터 유형이 다른 두 인덱스 객체의 합집합(Union) 구하기

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로 통합되어 출력될 수 있습니다. 동작 방식 자체는 동일하니 참고하시기 바랍니다.