Pandas 기술 통계

PandasBeginner
지금 연습하기

소개

Pandas 기술 통계학 실습에 오신 것을 환영합니다. 기술 통계학은 데이터 분석의 기본이며, 샘플과 측정값에 대한 간단한 요약을 제공합니다. Python 의 강력한 데이터 조작 라이브러리인 Pandas 를 사용하면 이러한 통계량을 계산하는 것이 간단하고 효율적입니다.

이 실습에서는 다음을 배우게 됩니다.

  • 데이터셋의 평균 (average) 계산하기
  • 중앙값 (median) 찾기
  • 최소값 (minimum) 및 최대값 (maximum) 결정하기
  • 단일 명령어로 통계량 전체 요약 생성하기
  • 범주형 열 (categorical column) 의 고유값 (unique values) 개수 세기

샘플 DataFrame 에서 이러한 작업을 수행하고 WebIDE 에서 Python 코드를 작성하고 실행할 것입니다. 시작해 봅시다!

mean 메서드를 사용하여 평균 계산

이 단계에서는 Pandas DataFrame 의 숫자 열 평균 (average) 을 계산하는 방법을 배웁니다. 평균은 값의 합을 값의 개수로 나눈 것으로, 중심 경향성 (central tendency) 을 나타내는 가장 일반적인 측정값 중 하나입니다.

Pandas 는 .mean() 메서드를 제공하며, 이 메서드는 Series(DataFrame 의 열) 에서 호출하여 평균을 계산할 수 있습니다.

먼저 WebIDE 왼쪽 파일 탐색기에서 main.py 파일을 엽니다. 샘플 DataFrame 을 생성하는 초기 코드를 볼 수 있습니다.

score 열의 평균을 계산하고 출력하기 위해 다음 코드를 main.py 파일 끝에 추가합니다.

## 'score' 열의 평균 계산
score_mean = df['score'].mean()
print(f"Mean Score: {score_mean}")

이제 스크립트를 실행해 봅시다. WebIDE 에서 터미널을 열고 (Terminal -> New Terminal) 다음 명령을 실행합니다.

python3 main.py

원본 DataFrame, 구분선, 그리고 계산된 평균 점수가 표시될 것입니다.

Original DataFrame:
      name  age  score grade
0    Alice   24     85     B
1      Bob   27     90     A
2  Charlie   22     78     C
3    David   32     95     A
4      Eve   29     88     B

==============================

Mean Score: 87.2

median 메서드로 중앙값 계산

이 단계에서는 숫자 열의 중앙값 (median) 을 계산합니다. 중앙값은 오름차순으로 정렬된 데이터셋의 중간 값입니다. 데이터에 이상치 (outliers) 가 포함된 경우 평균보다 중심 경향성을 나타내는 더 나은 척도가 되는 경우가 많습니다.

Pandas 는 .median() 메서드를 사용하여 이를 쉽게 수행할 수 있습니다.

main.py 파일 편집을 계속합니다. score 열의 중앙값을 계산하고 출력하기 위해 다음 줄을 스크립트 끝에 추가합니다.

## 'score' 열의 중앙값 계산
score_median = df['score'].median()
print(f"Median Score: {score_median}")

파일을 저장하고 터미널에서 스크립트를 다시 실행합니다.

python3 main.py

이제 출력에는 평균과 중앙값 모두 포함됩니다.

Original DataFrame:
      name  age  score grade
0    Alice   24     85     B
1      Bob   27     90     A
2  Charlie   22     78     C
3    David   32     95     A
4      Eve   29     88     B

==============================

Mean Score: 87.2
Median Score: 88.0

최소값 및 최대값 찾기

이 단계에서는 열의 최소값과 최대값을 찾습니다. 이러한 통계는 데이터의 범위와 분포를 이해하는 데 유용합니다. Pandas 는 이 목적을 위해 .min().max() 메서드를 제공합니다.

데이터셋에서 가장 낮고 높은 점수를 찾아봅시다. 다음 코드를 main.py 스크립트 끝에 추가합니다.

## 최소값 및 최대값 점수 찾기
score_min = df['score'].min()
score_max = df['score'].max()
print(f"Minimum Score: {score_min}")
print(f"Maximum Score: {score_max}")

파일을 저장하고 터미널에서 실행합니다.

python3 main.py

이제 출력에는 평균, 중앙값, 최소값 및 최대값 점수가 표시됩니다.

Original DataFrame:
      name  age  score grade
0    Alice   24     85     B
1      Bob   27     90     A
2  Charlie   22     78     C
3    David   32     95     A
4      Eve   29     88     B

==============================

Mean Score: 87.2
Median Score: 88.0
Minimum Score: 78
Maximum Score: 95

describe 로 요약 통계 생성

이 단계에서는 강력한 .describe() 메서드를 사용합니다. 이 단일 메서드는 DataFrame 의 모든 숫자 열에 대한 개수, 평균, 표준 편차, 최소값, 최대값 및 사분위수 값을 포함한 포괄적인 기술 통계 요약을 생성합니다.

이는 데이터에 대한 빠른 개요를 얻는 데 엄청난 시간을 절약해 줍니다. 다음 코드를 main.py 끝에 추가합니다.

## 기술 통계 요약 생성
summary_stats = df.describe()
print("Descriptive Statistics Summary:")
print(summary_stats)

파일을 저장하고 스크립트를 실행합니다.

python3 main.py

agescore 열에 대한 요약 통계가 포함된 잘 형식화된 테이블이 표시됩니다.

... (previous output) ...

Descriptive Statistics Summary:
             age      score
count   5.000000   5.000000
mean   26.800000  87.200000
std     4.024922   6.379655
min    22.000000  78.000000
25%    24.000000  85.000000
50%    27.000000  88.000000
75%    29.000000  90.000000
max    32.000000  95.000000

value_counts 로 고유값 개수 세기

이 단계에서는 열의 고유값 발생 횟수를 세는 방법을 배웁니다. 이는 범주형 데이터에 특히 유용합니다. .value_counts() 메서드는 고유값의 개수를 포함하는 Series 를 반환합니다.

각 등급을 받은 학생 수를 세어 봅시다. 다음 코드를 main.py 끝에 추가합니다.

## 각 등급의 발생 횟수 세기
grade_counts = df['grade'].value_counts()
print("Grade Counts:")
print(grade_counts)

파일을 저장하고 마지막으로 스크립트를 실행합니다.

python3 main.py

최종 출력에는 각 고유 등급에 대한 개수가 포함됩니다.

... (previous output) ...

Grade Counts:
grade
B    2
A    2
C    1
Name: count, dtype: int64

이는 등급 'A'와 'B'가 각각 두 번 나타나고 등급 'C'는 한 번 나타남을 보여줍니다.

요약

실험을 완료하신 것을 축하드립니다! Pandas 라이브러리를 사용하여 기본적인 기술 통계 분석을 성공적으로 수행하는 방법을 배웠습니다.

이 실험에서는 몇 가지 주요 Pandas 메서드를 연습했습니다.

  • .mean(): 평균 계산
  • .median(): 중앙값 찾기
  • .min().max(): 데이터 범위 결정
  • .describe(): 빠르고 포괄적인 통계 요약 얻기
  • .value_counts(): 범주형 열의 고유값 개수 세기

이러한 함수는 모든 데이터 분석가 또는 과학자에게 필수적인 도구이며 탐색적 데이터 분석 (EDA) 의 기초를 형성합니다. 데이터 분석 여정에서 더 능숙해지기 위해 이러한 기술을 계속 연습하십시오.