Pandas에서 한 인덱스에는 있지만 다른 인덱스에는 없는 요소들로 구성된 새로운 인덱스를 반환하려면 index1.difference(index2) 메서드를 사용합니다. 이 메서드는 두 인덱스의 차집합을 계산하여 정렬된 새 Index 객체를 돌려줍니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. 두 개의 Pandas 인덱스 생성
차이를 비교할 두 개의 인덱스를 생성합니다.
index1 = pd.Index([10, 20, 30, 40, 50]) index2 = pd.Index([80, 40, 60, 20, 55])
3. 인덱스 출력하기
생성한 index1과 index2를 화면에 표시합니다.
print("Pandas Index1...\n", index1)
print("Pandas Index2...\n", index2)4. 두 인덱스의 차이 구하기
difference() 메서드를 호출하여 두 인덱스의 차집합을 구합니다.
res = index1.difference(index2)
전체 예제 코드
다음은 지금까지의 내용을 모두 포함한 전체 코드입니다.
import pandas as pd
# 두 개의 Pandas 인덱스 생성
index1 = pd.Index([10, 20, 30, 40, 50])
index2 = pd.Index([80, 40, 60, 20, 55])
# Pandas index1과 index2 출력
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.difference(index2)
# index1에는 있지만 index2에는 없는 요소들로 이루어진 새로운 인덱스 반환
print("\nDifference...\n", res)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index1... Int64Index([10, 20, 30, 40, 50], dtype='int64') Pandas Index2... Int64Index([80, 40, 60, 20, 55], dtype='int64') Number of elements in index1... 5 Number of elements in index2... 5 Difference... Int64Index([10, 30, 50], dtype='int64')
정리
difference() 메서드는 index1의 요소 중 index2에 존재하지 않는 값인 10, 30, 50만 포함하는 새로운 인덱스를 반환합니다. 참고로 결과 인덱스는 항상 오름차순으로 정렬되며, 중복된 값은 자동으로 제거됩니다. 두 인덱스 간의 고유한 요소를 빠르게 추출해야 할 때 유용하게 활용할 수 있습니다.