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

Python Pandas – 두 인덱스 객체의 교집합 구하고 결과 정렬하기

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를 명시적으로 설정하면 항상 정렬된 결과를 보장받을 수 있습니다.