[AIVLE SCHOOL] 데이터 다듬기(3) - 데이터프레임 탐색

춤추는 머쉬룸·2024년 9월 12일

AIVLE SCHOOL 6기

목록 보기
17/80
post-thumbnail

9/12 5, 6세션

A. 데이터프레임 탐색 (EDA)

  • 탐색적 데이터분석(EDA) 라고 함
  • 파일에서 불러온 데이터의 크기, 내용, 분포, 누락된 값 등을 확인
  • 확인된 내용을 통해 데이터 전처리 필요 여부를 결정

A-1. 데이터 프레임 메서드 & 속성

  • head(n) : 상위 n개 데이터 확인
  • tail(n) : 하위 n개 데이터 확인
  • shape : 데이터프레임 크기. (rows, cols) 튜플 형태 반환
  • index : 인덱스 정보 확인 RangeIndex(start=0, stop=244, step=1) 로 반환
  • values : 값 정보 확인. 배열로 반환
  • columns : 열 정보 확인. Index(['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'], dtype='object') 로 반환
  • dtypes : 열 자료형 확인. (int64 / float64 / object 등)
  • info() : 열에 대한 상세한 정보 확인 (null값 개수 확인, 열 자료형, 행 및 열 개수 등)
  • describe() : 기술통계정보 확인

A-1-1) 기술 통계

  • 개수(count), 평균(mean), 표준편차(std), 최솟값(min), 사분위값(25%, 50%, 75%), 최댓값(max)을 표시
  • 표준편차가 작으면 평균에 모여있다, 크면 분산되어있다

B. 데이터프레임 정렬

B-1. 특정 열로 정렬

  • sort_values(by='열이름') 메서드
  • ascending=True : 오름차순 (기본값)
  • ascending=False : 내림차순

B-1-1) 복합 열로 정렬

# 열1 로 내림차순 하고, 같은 내용이 있다면 열2로 내림차순 한다.
데이터프레임.sort_values(['열1', '열2'], ascending=False)

# 열1 로 내림차순 하고, 같은 내용이 있다면 열2로 올림차순 한다.
데이터프레임.sort_values(['열1', '열2'], ascending=[False, True])

C. 기본 집계

C-1. 고유값 확인

  • 데이터프레임[열이름].unique() 메서드
  • 범주형 열(열이 가진 값이 일정한 값인 경우(성별, 등급 등))인지 확인할 때 사용
  • 문자열이 범주형이 많다
  • 숫자는 연속형이 많다
# day 열 고윳값 확인
> tip['day']

--> 시리즈 형으로 반환함. 

> tip[['day']]

--> 데이터프레임으로 반환함. 여러개가 될 수 있다는 의지를 보여줌!

> tip['day'].unique()
array(['Sun', 'Sat', 'Thur', 'Fri'], dtype=object) # 고유값의 결과는 리스트

TIP! 시리즈 (Series)
데이터프레임과 비슷하나, 열이 1개임

C-1-1) 고유값과 개수 확인

  • 데이터프레임[열이름].value_counts() 메서드
  • dropna 옵션을 생략하거나 dropna=True로 지정하면 NaN 값은 대상에서 제외
  • normalize=True 옵션을 주면 %로 확인
# day 열 고윳값 개수 확인
> tip['day'].value_counts()

day
Sat     87
Sun     76
Thur    62
Fri     19
Name: count, dtype: int64

C-2. 최빈값 확인

  • mode() 메서드
  • 최빈값이 여렷인 경우 행으로 구분되어 표시
  • 시리즈 형으로 반환
# day 열 최빈값 확인
> tip['day'].mode()

0    Sat
Name: day, dtype: object

# 최빈값의 값만 얻기
> tip['day'].mode()[0]

'Sat'

C-3. 기본 통계 메서드

C-3-1) 합계 관련 옵션

  • sum(axis=0) : 행을 더하면 결과로 열이 출력. 기본값
  • sum(axis=1) : 열을 더하면 결과로 행을 출력`
  • 더해지는 것 기준으로 axis를 쓴다
  • df.sum(numeric_only=True) : 숫자 자료형만 더한다
  • df[열이름].sum() : 특정 열 합계 조회

C-3-2) 특정 열 최대값 조회

df[열이름].max

C-3-3) 여러개의 열 평균값 확인

df[[열1, 열2]].mean()

0개의 댓글