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

Python Pandas – 인덱스가 단조 증가인지 확인하는 방법 (is_monotonic_increasing)

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 속성을 사용하면 됩니다. 두 속성을 활용하면 인덱스의 정렬 상태를 손쉽게 검증할 수 있습니다.