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

Python Pandas – DataFrame 열(Column) 값의 중앙값(Median) 계산 방법

Pandas median() 메서드로 열 값의 중앙값 계산하기

DataFrame 열(column) 값의 중앙값(median)을 계산하려면 median() 메서드를 사용합니다. 중앙값은 데이터를 크기순으로 정렬했을 때 가운데 위치하는 값으로, 극단적인 이상치(outlier)에 평균보다 덜 영향을 받는 대표 통계량입니다.

먼저 필요한 Pandas 라이브러리를 임포트합니다.

import pandas as pd

DataFrame 생성

이제 두 개의 열을 가진 DataFrame을 만들어 보겠습니다.

dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
      "Units": [100, 150, 110, 80, 110, 90]
   }
)

단일 열의 중앙값 구하기

median() 메서드를 사용하면 "Units" 열처럼 특정 열 하나의 중앙값을 간단히 구할 수 있습니다.

print("DataFrame1의 Units 열 중앙값 = ", dataFrame1['Units'].median())

같은 방식으로 두 번째 DataFrame에서도 중앙값을 계산할 수 있습니다.

전체 예제 코드

다음은 두 개의 DataFrame에서 각각 중앙값을 구하는 전체 코드입니다.

import pandas as pd

# DataFrame1 생성
dataFrame1 = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

print("DataFrame1 ...\n", dataFrame1)

# "Units" 열 값의 중앙값 구하기
print("DataFrame1의 Units 열 중앙값 = ", dataFrame1['Units'].median())

# DataFrame2 생성
dataFrame2 = pd.DataFrame(
    {
        "Product": ['TV', 'PenDrive', 'HeadPhone', 'EarPhone', 'HDD', 'SSD'],
        "Price": [8000, 500, 3000, 1500, 3000, 4000]
    }
)

print("\nDataFrame2 ...\n", dataFrame2)

# "Price" 열 값의 중앙값 구하기
print("DataFrame2의 Price 열 중앙값 = ", dataFrame2['Price'].median())

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame1 ...
        Car   Units
0       BMW     100
1      Lexus     150
2       Audi     110
3      Tesla      80
4    Bentley     110
5     Jaguar      90
DataFrame1의 Units 열 중앙값 = 105.0

DataFrame2 ...
   Price    Product
0   8000         TV
1    500   PenDrive
2   3000  HeadPhone
3   1500    EarPhone
4   3000        HDD
5   4000        SSD
DataFrame2의 Price 열 중앙값 = 3000.0

결과 해석

"Units" 열의 값을 오름차순으로 정렬하면 80, 90, 100, 110, 110, 150이 되며, 데이터 개수가 짝수(6개)이므로 가운데 두 값인 100과 110의 평균인 105.0이 중앙값이 됩니다. 마찬가지로 "Price" 열은 500, 1500, 3000, 3000, 4000, 8000으로 정렬되며, 가운데 두 값이 모두 3000이므로 중앙값은 3000.0입니다.

참고로 DataFrame 전체 수치 열의 중앙값을 한 번에 구하고 싶다면 df.median(numeric_only=True)처럼 호출하면 각 열별 중앙값이 Series 형태로 반환됩니다.