sliver__

[Pandas 데이터 분석] Chapter 5 - 데이터 사전 처리 본문

CS/Pandas

[Pandas 데이터 분석] Chapter 5 - 데이터 사전 처리

sliver__ 2022. 2. 26. 20:38
728x90

[누락 데이터 처리]

  • 데이터프레임에는 원소 데이터 값이 종종 누락되는 경우가 있다.
  • 일반적으로 유효한 데이터 값이 존재하지 않는 누락 데이터를 NaN(Not a Number)으로 표시한다.

 

  • 누락 데이터 확인
isnull() 누락 데이터면 True를 반환, 아니면 False를 반환
notnull() 유효 데이터면 True를 반환, 아니면 False를 반환
  • 누락 데이터 제거
    • 열을 삭제하면 attribute를 제거
    • 행을 삭제하면 record를 제거
  • 누락 데이터 치환
    • 누락된 데이터를 삭제하는 것이 아니라 평균값, 최빈값 등을 활용하여 값을 대체한다.
    • fillna() 메소드로 처리
    • 새로운 객체를 반환하기 때문에 원복 객체를 변환하려면 inplace=True 옵션 추가
    • method = 'ffill' : 이전 행의 데이터를  복사
    • method = 'bfill' : 다음 행의 데이터를 복사

[중복 데이터 처리]

  • 하나의 데이터 셋에서 동일한 관측값이 2개 이상 중복되는 경우 삭제해야한다.
  • 분석 결과를 왜곡할 수 있다.

 

  • 중복 데이터 확인
    • duplicated() : 전에 나온 행들과 비교하여 중복되는 행이면 True, 처음 나오는 행에 대해서는 False를 반환
  • 중복 데이터 제거
    • drop_duplicates() : 중복되는 행을 제거
    • inplace = True 옵션을 추가하면 원본 객체를 변경
    • subset = ['열 이름',..] 리스트를 전달하면 해당 열을 기준으로 중복을 판단한다. 모든 열의 중복이 전부 True인 경우에 행을 삭제한다.

[데이터 표준화]

  • 단위환산
    • 같은 데이터셋 안에서 서로 다른 측정 단위를 사용한다면 일관성에 문제가 있다 => 동일하게 변경필요

[범주형 데이터 처리]

  • 구간 분할
    • 데이터 분석 알고리즘에 따라서는 연속 데이터를 일정 구간으로 나누어 분석하는 것이 효율적인 경우가 있다.
    • 연속 변수를 일정한 구간으로 나누고 범주형 이산 변수로 변환하는 과정을 구간 분할이라고 한다.
    • cut() 함수를 이용
  • 더미 변수
    • 범주를 나누었지만 컴퓨터가 인식 가능한 입력값으로 변환해야 한다.
    • 숫자 0 또는 1로 표현되는 더미 변수를 사용한다.
    • 0과 1로만 구성되는 원핫벡터로 변환한다고 해서 원핫인코딩이라고 부른다.
    • get_dummies() : 범주형 변수의 모든 고유값을 새로운 더미변수로 변환

[정규화]

  • 숫자 데이터의 경우 상대적인 크기 차이를 제거할 필요가 있다.
  • 정규화 과정을 거친 데이터의 범위는 0~1 또는 -1 ~ 1.

 


[시계열 데이터]

  • 판다스는 시계열 데이터를 다루는 여러 가지 유용한 기능을 제공한다.
  • 시계열 데이터를 데이터프레임의 행 인덱스로 사용하면, 시간으로 기록된 데이터를 분석하는 것이 매우 편리하다.
  • 특정한 시점을 기록하는 Timestamp / 두 시점 사이의 일정한 기간을 나타내는 Period가 있다.

 

  • 다른 자료형을 시계열 객체로 변환
    • 문자열을 Timestamp로 변환
      • to_datetime() : 문자열 등 다른 자료형을 판다스 timestamp를 나태내는 datatime64 자료형으로 변환 가능하다.
    • Timestamp를 Period로 변환
      • to_period() : 일정한 기간을 나타내는 Period 객체로 Timestamp 객체를 변환한다.
      • freq 옵션에 기준이 되는 기간을 설정
  • 시계열 데이터 만들기
    • Timestamp 배열
      • data_range() : 여러 개의 날짜가 들어 있는 배열 형태의 시계열 데이터를 만들 수 있다.
    • Period 배열
      • period_range() : 여러 개의 기간이 들어 있는 시계열 데이터를 만든다.

[시계열 데이터 활용]

  • 날짜 데이터 분리
    • 연-월-일 날짜 데이터를 분리하여 추출할 수 있다.
    • to_datetime()으로 만든 열의 .dt.{year/month/dat} 로 선택이 가능하다.
728x90
Comments