Pandas에서 인덱스가 단조 증가(monotonic increasing) 상태인지, 즉 값들이 동일하거나 계속 증가하는 형태를 유지하는지 확인하려면 index.is_monotonic_increasing 속성을 사용하면 됩니다. 이 속성은 불리언(Boolean) 값(True/False)을 반환하므로, 인덱스가 정렬되어 있는지 빠르게 판별할 수 있습니다.
단조 증가란 값이 감소하지 않는 상태를 의미합니다. 따라서 중복된 값이 포함되어도(예: 20, 20) 이전 값보다 작아지기만 하지 않으면 단조 증가로 간주됩니다.
1. 라이브러리 임포트
먼저 필요한 라이브러리를 임포트합니다.
import pandas as pd
2. 인덱스 생성
다음과 같이 정수 값들로 구성된 인덱스를 생성합니다.
index = pd.Index([10, 20, 20, 30, 40])
3. 인덱스 출력
생성한 인덱스를 화면에 표시합니다.
print("Pandas Index...\n", index)4. 단조 증가 여부 확인
is_monotonic_increasing 속성을 호출하여 인덱스가 단조 증가인지 검사합니다.
print("\nIs the Pandas index monotonic increasing?\n", index.is_monotonic_increasing)전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
# 인덱스 생성
index = pd.Index([10, 20, 20, 30, 40])
# 인덱스 출력
print("Pandas Index...\n", index)
# 인덱스 데이터를 배열 형태로 반환
print("\nArray...\n", index.values)
# 단조 증가 여부 확인
print("\nIs the Pandas index monotonic increasing?\n", index.is_monotonic_increasing)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Pandas Index... Int64Index([10, 20, 20, 30, 40], dtype='int64') Array... [10 20 20 30 40] Is the Pandas index monotonic increasing? True
결과 분석
결과가 True로 나온 이유는 인덱스 값이 10 → 20 → 20 → 30 → 40 순서로 배치되어 있어, 어떤 값도 이전 값보다 작아지지 않기 때문입니다. 중복된 값(20, 20)이 존재해도 단조 증가 조건에는 위배되지 않습니다.
만약 인덱스에 [10, 30, 20]처럼 감소하는 구간이 있다면 결과는 False가 됩니다.
참고: 단조 감소 확인하기
반대로 인덱스가 단조 감소(monotonic decreasing), 즉 값이 동일하거나 계속 감소하는지 확인하려면 is_monotonic_decreasing 속성을 사용하면 됩니다. 두 속성을 활용하면 인덱스의 정렬 상태를 손쉽게 검증할 수 있습니다.