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

Pandas에서 중앙값 기준으로 박스 플롯(Boxplot) 정렬하는 방법

Pandas에서 중앙값(median)을 기준으로 박스 플롯(boxplot)을 정렬하려면 다음 단계를 순서대로 따르면 됩니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변 여백(padding)을 조정합니다.
  • 세 개의 열을 가진 2차원, 크기 조절 가능하며 다양한 타입의 데이터를 담을 수 있는 Pandas 데이터프레임(DataFrame)을 생성합니다.
  • 데이터프레임의 요소를 marksdob 기준으로 그룹화(groupby)합니다.
  • 데이터프레임의 중앙값을 계산합니다.
  • 계산된 중앙값을 내림차순으로 정렬합니다.
  • 정렬된 순서에 따라 데이터프레임의 열로 박스 플롯을 생성합니다.
  • 그래프를 화면에 표시하려면 plt.show() 메서드를 사용합니다.

예제 코드

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame([
    [23, 'James', 12],
    [39, 'Jimmy', 27],
    [56, 'Jack', 69],
    [60, 'Tom', 96],
    [80, 'Tim', 79]
], columns=['marks', 'names', 'dob'])

g = df.groupby(["marks", "dob"])

df = pd.DataFrame({col: val['dob'] for col, val in g})

median = df.median()
median.sort_values(ascending=False, inplace=True)

df = df[median.index]
df.boxplot()

plt.show()

실행 결과

위 코드를 실행하면 각 열의 중앙값을 기준으로 내림차순 정렬된 상태로 박스 플롯이 출력됩니다.

Pandas에서 중앙값 기준으로 박스 플롯(Boxplot) 정렬하는 방법

코드 설명

핵심 로직은 다음과 같습니다. 먼저 df.median()으로 각 열의 중앙값을 구한 뒤, sort_values(ascending=False)를 통해 내림차순으로 정렬합니다. 이후 정렬된 인덱스(median.index)를 사용해 원본 데이터프레임의 열 순서를 재배열하면, boxplot() 호출 시 중앙값이 큰 순서대로 박스가 표시됩니다. 만약 오름차순으로 정렬하고 싶다면 ascending=True로 변경하거나 해당 옵션을 제거하면 됩니다.