프로그래밍/파이썬

EDA - 1단계 : 데이터 다루기 - 통계

매 석 2023. 7. 18. 18:15
반응형

- 과거 내용

 

EDA - 1단계 : 데이터 다루기 - 축, 레이블

과거 내용 DataFrame - 축, 레이블 1. 행-열 교환 swapaxes를 사용해서 행과 열을 교환할 수 있다. 0은 i...

blog.naver.com

 

- DataFrame - 통계

1. 최대, 최소

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     6     7
row3    10     9     8

#최대
print(df.max(axis=1))

row1     3
row2     7
row3    10
dtype: int64

#최소
print(df.min(axis=1))

row1    1
row2    5
row3    8
dtype: int64

 

max와 min 함수를 이용해 최대, 최소 값을 구할 수 있다.

axis로 행과 열 중 어떤 것을 선택할 지 정할 수 있다.

이외에도 skipna, level 등의 옵션이 있다.

2. 평균

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     6     7
row3    10     9     8

#평균
print(df.mean(axis=1))

row1    2.0
row2    6.0
row3    9.0
dtype: float64

 

mean을 통해서 평균을 구할 수 있다. axis로 행과 열 중 선택할 수 있다.

이외에도 skipna, level 등의 옵션을 사용할 수 있다.

3. 중앙값

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     6     7
row3    10     9     8

#중앙값
print(df.median())

col1    5.0
col2    6.0
col3    7.0
dtype: float64

 

median을 통해서 중앙값을 구할 수 있다.

역시 axis, skipna, level 등의 옵션을 사용할 수 있다.

4. 최빈값

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     2     7
row3    10     9     8

#최빈값
print(df.mode())

   col1  col2  col3
0     1   2.0     3
1     5   NaN     7
2    10   NaN     8

 

mode를 사용해서 최빈값을 찾을 수 있다.

dropna, numeric_only 의 옵션을 사용해서

최빈값에 포함할 데이터를 선택할 수 있다.

5. 표준편차

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     2     7
row3    10     9     8

#표준편차
print(df.std())

col1    4.509250
col2    4.041452
col3    2.645751
dtype: float64

 

std를 사용해서 표준편차를 구할 수 있다.

추가로 level, skipna, axis 옵션을 사용할 수 있다.

더불어 ddof를 사용해서 자유도를 설정하고

표본표준편차를 구할 수 있다.

6. 분산

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     2     7
row3    10     9     8

#분산
print(df.var())

col1    20.333333
col2    16.333333
col3     7.000000
dtype: float64

 

var를 사용해서 분산을 구할 수 있다.

표준편차와 마찬가지로 level, skipna, axis, ddof 등의

옵션을 사용할 수 있다.

7. 평균절대편차

#원본 데이터
      col1  col2  col3
row1     1     2     3
row2     5     2     7
row3    10     9     8

#평균절대편차
print(df.mad())

col1    3.111111
col2    3.111111
col3    2.000000
dtype: float64

 

mad를 사용해서 평균절대편차를 구할 수 있다.

평균절대편차란 각 측정값과 평균 사이의 거리의 평균을 말한다.

axis, skipna, level 등의 옵션을 사용할 수 있다.

8. 누적최대, 최소

#원본 데이터
      col1  col2  col3
row1     7     5     3
row2     5     2     7
row3    10     9     8

#누적 최대
print(df.cummax())

      col1  col2  col3
row1     7     5     3
row2     7     5     7
row3    10     9     8


#누적 최소
print(df.cummin())

      col1  col2  col3
row1     7     5     3
row2     5     2     3
row3     5     2     3

 

누적 최대는 cummax, 누적 최소는 cummin을 사용한다.

axis와 skipna 등의 옵션을 사용할 수 있다.

9. 누적합, 누적곱

#원본 데이터
      col1  col2  col3
row1     7     5     3
row2     5     2     7
row3    10     9     8

#누적합
print(df.cumsum())

      col1  col2  col3
row1     7     5     3
row2    12     7    10
row3    22    16    18

#누적곱
print(df.cumprod())

      col1  col2  col3
row1     7     5     3
row2    35    10    21
row3   350    90   168

 

누적합은 cumsum을 통해, 누적곱은 cumprod를 통해 구할 수 있다.

axis, skipna 등의 옵션을 사용할 수 있다.

10. 분위수

#원본 데이터
      col1  col2  col3
row1     7     5     3
row2     5     2     7
row3    10     9     8

#분위수
print(df.quantile(q=0.5))

col1    7.0
col2    5.0
col3    7.0
Name: 0.5, dtype: float64

 

quantile을 통해 분위수를 구할 수 있다.

특히 옵션 중에 interpolation으로 분위수가 없는 값이라면

어떤 수를 출력할 지 정할 수 있다.

이외에도 axis, numeric_only 등의 옵션을 사용할 수 있다.