본문 바로가기

Python/Pandas

ChatGPT로 Python pandas 알아보기 (9) : 기초통계량

반응형

ChatGPT로 Python pandas 알아보기 (9) : 기초통계량

이번 포트스에서는 ChatGPT로 pandas 라이브러리의 기초통계량 관련 Method들에 대해서 알아보고자 한다.
ChatGPT에서 플러그인인 Noteable을 사용해서 기초통계량 관련 내용과 메서드들을 정리 및 설명을 요청해보았다.
작성해준 내용을 바탕으로 내용을 정리해보았다.


'기초통계량'이란?
기초 통계량은 데이터의 기본적인 특성을 요약하여 표현하는 수치들을 말한다.
이러한 기초 통계량은 데이터를 분석하고 이해하는 데 있어 중요한 역할을 하며, 통계적 추론의 기초가 된다.
기초 통계량에는 여러 종류가 있는데, 대표적으로 다음과 같은 것들이 있다.
  • 평균 (Mean): 모든 데이터 값을 합한 후, 데이터의 개수로 나눈 값으로, 데이터의 중심 경향을 나타낸다.
  • 중앙값 (Median): 데이터를 크기 순으로 나열했을 때, 가장 가운데에 위치하는 값이다.
    데이터의 분포가 치우친 경우, 평균보다는 중앙값이 더 대표적인 값을 나타낼 수 있다.
  • 최빈값 (Mode): 데이터셋에서 가장 자주 등장하는 값으로, 어떤 값이 데이터 내에서 가장 흔한지를 나타낸다.
  • 표준편차 (Standard Deviation)분산 (Variance): 데이터 값들이 평균으로부터 얼마나 퍼져있는지를 나타내는 척도이다.
    표준편차는 분산의 제곱근으로, 분산보다 더 직관적으로 데이터의 퍼짐 정도를 이해할 수 있다.
  • 사분위수 (Quartiles): 데이터를 4등분하는 값들로, 제1사분위수(Q1)는 하위 25%, 제2사분위수(Q2)는 하위 50%(=중앙값), 제3사분위수(Q3)는 하위 75%에 해당하는 값이다.
    사분위수를 이용하면 데이터의 분포를 더 상세히 이해할 수 있다.
이와 같은 기초 통계량들은 데이터의 전반적인 특성을 파악하는 데 있어 매우 유용하게 사용된다.
이를 통해 데이터의 중심, 퍼짐, 비대칭성 등을 쉽게 이해하고 분석할 수 있다.


pandas 기초통계량 Method
우선 pandas에는 다음과 같은 기초통계량 메서드를 제공한다.
우선 아래와 같은 샘플 데이터를 사용하겠다.
import pandas as pd
import numpy as np

# A와 B는 모두 0~100 중에 무작위로 20개를 생성한다.
df = pd.DataFrame({
    'A': np.random.randint(0, 101, size=20),
    'B': np.random.randint(0, 101, size=20)
})
	
Sample Data
✔ count()
NA 값을 제외한 수를 반환하는 메서드이다.
df.count()
count() : 컬럼 A와 B에서 NA가 아닌 데이터의 수를 반환
✔ describe()
각 열에 대한 요약 통계를 계산하는 메서드이다.
df.describe()
describe() : A와 B 컬럼에 대한 요약 통계
✔ min()
최솟값을 계산하는 메서드이다.
df.min()
min() : A와 B 컬럼의 최솟값 출력
✔ max()
최댓값을 계산하는 메서드이다.
df.max()
max() : A와 B 컬럼의 최댓값 출력
✔ sum()
데이터의 합을 계산하는 메서드이다.
df.sum()
sum() : A와 B 컬럼의 합계 계산
✔ mean()
데이터의 평균을 계산하는 메서드이다.
df.mean()
mean() : A와 B 컬럼의 평균 계산
✔ median()
데이터의 중위수(중앙값)을 출력하는 메서드이다.
df.median()
median() : A와 B의 중위수 출력
✔ var()
데이터의 분산을 계산하는 메서드이다.
df.var()
var() : A와 B 컬럼의 분산을 계산
✔ std()
데이터의 표준편차를 계산하는 메서드이다.
df.std()
std() : A와 B 컬럼의 표준편차 계산
✔ argmin()
데이터 중 최솟값을 가진 index를 출력한다.
argmin()은 Series에서 사용한다.
df['A'].argmin()
df['B'].argmin()
argmin() : A와 B 각각 최솟값의 index
✔ argmax()
데이터 중 최댓값을 가진 index를 출력한다.
argmax()은 Series에서 사용한다.
df['A'].argmax()
df['B'].argmax()
argmax() : A와 B 각각 최댓값의 index
✔ idxmin()
데이터에서 최솟값의 index를 출력한다.
컬럼별의 argmin() 결과를 출력해준다.
df.idxmin()
idxmin() : A와 B 컬럼 각각 최솟값의 index를 출력
✔ idxmax()
데이터에서 최댓값의 index를 출력한다.
컬럼별의 argmax() 결과를 출력해준다.
df.idxmax()
idxmax() : A와 B 컬럼 각각 최댓값의 index를 출력
argmin(), argmax(), idxmin(), idxmax()는 중복된 최솟값 또는 최댓값이 있을 경우, 기본적으로 가장 첫번째 index를 반환한다.
✔ quantile()
데이터의 특정 사분위수에 해당하는 값을 반환한다.
df.quantile(q)
# q는 0과 1사이의 값으로 입력한다. / list로도 입력 가능하다.

df.quantile([0.25, 0.5, 0.75])
위 코드에서 0.25는 25%로 제1사분위수를, 0.5는 50%로 중앙값을, 0.75는 75%로 제3사분위수를 출력한다.
quantile() : A와 B 컬럼의 각 제1사분위수/제2사분위수(중앙값)/제3사분위수 출력
✔ cumsum()
데이터의 누적합을 계산한다.
df.cumsum()
cumsum() : A와 B 컬럼의 누적합 계산
✔ cumprod()
데이터의 누적곱을 계산한다.
df.cumprod()
cumprod() : A와 B 컬럼의 누적곱 계산


Summary
위 내용들을 요약하자면 아래와 같다.
  • count(): NA 값을 제외한 수를 반환.
  • describe(): Series나 DataFrame의 각 열에 대한 요약 통계를 계산.
  • min(), max(): 최솟값, 최댓값을 계산.
  • sum(): 합을 계산.
  • mean(): 평균을 계산.
  • median(): 중위수를 출력.
  • var(): 분산을 계산
  • std(): 표준편차를 계산.
  • argmin(), argmax(): Series에서 최솟값, 최댓값을 가진 index를 출력.
  • idxmin(), idxmax(): 최솟값, 최댓값을 가진 index를 출력.
  • quantile(): 특정 사분위수에 해당하는 값을 반환.
  • cumsum(): 누적합을 계산.
  • cumprod(): 누적곱을 계산.
ChatGPT로 pandas 라이브러리에서 사용하는 기초통계량 관련 메서드에 대해서 알아보았다.
오랜만에 전공 공부하는 느낌 같아서 뭔가 재미있었고, 처음보는 메서드도 몇개 있어서 재미있는 시간이었던 것 같다.
반응형

loading