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

Pandas 시리즈에서 n번째 백분위수 구하는 방법

백분위수(percentile)는 통계학에서 특정 점수가 동일한 데이터 집합에 속한 다른 점수들과 비교했을 때 어느 상대적 위치에 있는지를 나타내는 지표입니다. 예를 들어, 90번째 백분위수에 해당하는 값은 전체 데이터 중 90%가 그 값보다 작거나 같다는 의미를 가집니다.

이 글에서는 Python의 Pandas 라이브러리를 사용하여 시리즈(Series)의 n번째 백분위수를 구하는 방법을 단계별로 살펴보겠습니다.

알고리즘

1단계: Pandas 시리즈를 정의합니다.
2단계: 구하고자 하는 백분위수 값을 입력받습니다.
3단계: quantile() 함수로 백분위수를 계산합니다.
4단계: 계산된 백분위수를 출력합니다.

예제 코드

import pandas as pd

series = pd.Series([10,20,30,40,50])
print("Series:\n", series)

n = int(input("Enter the percentile you want to calculate: "))
n = n/100

percentile = series.quantile(n)
print("The {} percentile of the given series is: {}".format(n*100, percentile))

실행 결과

Series:
0    10
1    20
2    30
3    40
4    50
dtype: int64
Enter the percentile you want to calculate: 50
The 50.0 percentile of the given series is: 30.0

코드 설명

Pandas의 quantile() 함수는 매개변수로 0부터 1 사이의 값만 받습니다. 따라서 사용자가 입력한 백분위수 값(예: 50)을 그대로 전달하면 오류가 발생할 수 있으므로, 반드시 100으로 나누어 소수 형태(예: 0.5)로 변환한 뒤 함수에 전달해야 합니다.

위 예제에서는 [10, 20, 30, 40, 50]으로 구성된 시리즈의 50번째 백분위수(즉, 중앙값)를 구했으며, 결과로 30.0이 출력되었습니다.

추가 팁: 보간(interpolation) 옵션 활용하기

quantile() 함수는 기본적으로 선형 보간(linear interpolation) 방식을 사용하지만, 필요에 따라 interpolation 매개변수를 활용해 계산 방식을 변경할 수 있습니다.

# 'lower', 'higher', 'midpoint', 'nearest' 등의 옵션 사용 가능
percentile = series.quantile(0.5, interpolation='lower')

이처럼 Pandas의 quantile() 함수를 사용하면 복잡한 통계 계산 없이도 간단하게 원하는 백분위수를 손쉽게 구할 수 있습니다.