Chapter 04. 데이터 요약하기

강민석·2023년 2월 4일
0

데이터 분석

목록 보기
4/7

데이터가 너무 방대하거나 용량이 큰 경우에는 일일히 살펴보는 것이 비효율적일 수 있다.
데이터를 수치나 그래프로 요악해 표현한다면 효과적으로 데이터의 특성을 파악할 수 있다.

실습 코드 : https://colab.research.google.com/drive/1VvP9oGzURroVGO6u4kA8HY_X2cBxdSFT?usp=sharing
https://colab.research.google.com/drive/1VkGS8tH_LKRvWEuyfx99YEEt50ZTlwi7?usp=sharing


통계로 요약하기

기술통계(Descriptive Statistics)

전체 데이터의 특징을 정량적인 수치(평균, 표준 편차 등)로 나타내거나 그래프를 활용해 시각적으로 표현. -> 탐색적 데이터분석

describe()

pandas dataframe에서 기본적인 기술통계를 자동으로 추출해줌.

  • count : 누락된 값을 제외한 데이터의 수
  • mean : 평균
  • std : 표준편차
  • min : 최솟값(0%)
  • max : 최대값(100%)
  • 25, 50, 75% : 순서대로 놓았을때 해당 지점에 위치한 값

percentities = 원하는 값 출력 가능 / percentiles=[0.3, 0.6, 0.9]

include = 수치가 아닌 타입의 데이터 통계 표현 가능 / include='object'

  • unique : 고유한 값의 개수
  • top : 가장 많이 등장하는 값
  • freq : top이 등장한 회수

mean()

열에 대한 평균 출력

median()

열에 대한 중간값 출력

  • 값의 개수가 짝수이면 가운데 두 개 값의 평균값을 출력
  • 중복 값 제거후 출력 : drop_duplicates().median()

min()

열에 대한 최솟값 출력

max()

열에 대한 최댓값 출력

quantile()

열의 분위수값 출력

dataframe['column'].quantile([0.25,0.5,0.75])

interpolation(보간) : 두 지점 사이에 놓인 특정 위치의 값을 구하는 방법

  • linear : quantile에서의 기본값으로, 비율로 계산한다.
  • midpoint : 중앙값을 사용한다.
  • nearest : 가까운 값을 사용한다.
  • lower : 낮은 값을 사용한다.
  • higher : 높은 값을 사용한다.

백분위 구하기

값의 크기 비교를 통해 boolean 배열 생성 후 전체 데이터의 양과 비교하여 구할 수 있다.

# ns_book7의 대출건수가 10인 경우 백분위는?
borrow_10_flag = ns_book7.대출건수 < 10
borrow_10_flag.mean()

var()

열의 분산값 출력. 분산 : 데이터가 평균으로부터 퍼져있는 정도

std()

열의 표준편차 출력. 표준편차 : 분산의 제곱근

mode()

열의 최빈값 출력. 최빈값 : 가장 자주(최고 빈도) 등장


분포 요약하기

데이터를 그래프를 통해 요악하여 분포를 살펴보고 통찰을 얻어보자

matplotlib.pyplot 패키지 활용 as plt

산점도 표현

scatter()

산점도를 그려줌. x,y축 좌표를 입력후 plt.show

plt.scatter([1,2,3,4], [1,2,3,4])
plt.show()

alpha : 투명도 조절을 통해 데이터 집중도 파악 가능.
alpha = 0.1

히스토그램

hist()

히스토그램을 표현해주며, 구간(bins)의 기본값은 10

plt.hist([0,3,5,6,7,7,9,13], bins=5)

log : y축을 로그스케일로 출력
log = true

x(y)scale()

구간의 스케일을 변경. 로그스케일 사용등에 활용할 수 있다.

plt.yscale('log')

상자수염

최솟값, 세 개의 사분위수, 최댓값을 활용해 데이터를 요약한 그래프

작성 방법

https://ko.wikipedia.org/wiki/%EC%83%81%EC%9E%90_%EC%88%98%EC%97%BC_%EA%B7%B8%EB%A6%BC

boxplot()

상자수염 그래프를 표현

vert : x-y축을 변경.
vert=False

whis : 수염의 길이 변경.

  • IQR 배율 변경
    whis=10
  • 백분위수에 해당하는 데이터 출력
    whis=(10,90)

pandas에서 그래프 그리기 - plot

산점도

dataframe.plot.scatter('x축 열 이름', 'y축 열 이름', alpha=0.1

히스토그램

dataframe['대상 열 이름'].plot.hist(bins=100)

상자수염

dataframe[['대상 열 이름', '대상 열2 이름']].boxplot()


소감

데이터 분석에서 자주 사용되는 통계적 용어들의 정의와 그 표현 방법들에 대해 알아보았다. 표준편차 등의 내용은 학생 때 배웠을 때는 굉장히 막연하게 느껴졌지만 이번에 데이터 분석 공부를 하며 살펴보니 훨씬 명료하게 와닿는 느낌이었다.

상자수염 내용을 통해 데이터분석에서 이상치 제거에 대한 한 사례를 만나보고 그래프를 통해 나타난 데이터의 형상을 통해 통찰을 얻는다는 것이 어떤 과정인지 알 수 있었다. 데이터의 형태와 특성에 따라 다양한 방법으로 통찰을 얻어야 할 것이며 이 중 한가지를 배워간다.

profile
새내기 개발자입니다.

0개의 댓글