본문 바로가기
데이터

[데이터 전처리] Python을 통한 데이터 전처리 기초 내용 정리 (데이터 변형, 연속형 데이터 범주화, 더미 변수)

by dwoi 2023. 3. 31.

Python을 통해서 데이터 전처리를 하는 과정에 대한 기초적인 내용을 정리하는 글

 

목차

     


    데이터 전처리

    데이터 전처리는 데이터 분석과 모델링에서 가장 많은 시간과 노력이 소요되는 부분으로

    데이터의 값이나 형태를 변환하여 분석에 적합한 형태로 만드는 것을 의미

    • 결측치/중복치 처리
    • 데이터 변형 및 치환
    • 범주형 데이터 처리

    문자열 시계열 데이터는 자료형에 알맞은 처리가 필요하기 때문에 이 내용이 중요함!


    1. 데이터 변형 및 치환

    1. 1. 함수를 사용한 데이터 변환

    • map, lambda를 사용하여 원하는 형태로 변환할 수 있음.
      • lower() 메소드를 활용하여 문자열 데이터를 소문자로 변환하는지
      • lambda를 활용하여 숫자 데이터를 전부 두배로 증가하던지

    1.2. 값 치환하기

    • replace() 메소드를 사용하면 좀 더 간단하고 유연하게 값을 치환할 수 있음
      • 데이터프레임 내 전체 내 데이터에 대해서도 replace를 수행할 수 있음

    ◆ 특이값 처리하기

    • 예를 들어 특정 컬럼 내 2보다 크거나 -2보다 작은 데이터는 특이값으로 지정
    • 2보다 큰 데이터를 2로 변환하고 -2보다 작은 데이터를 -2로 변환하여 데이터에 있는 특이값을 처리할 수 있음.

     

    2. 데이터 샘플링

     데이터를 일부 정리해서 최적의 입력 데이터로 만드는 과정

    • permutation을 활용하여 인덱스의 순서를 셔플링
    • 전체 데이터를 뒤섞인 인덱스에 맞게 섞어줌

     

    • sample()
      • n을 사용하면 전체 데이터에서 정해진 개수만큼 랜덤하게 선택
      • frac을 사용하면 전체 데이터의 비율만큼 랜덤하게 선택
      • replcae = True로 데이터를 복원 추출
      • 데이터 전체 개수보다 더 많은 데이터를 샘플링할 수도 있음

     

    3. 연속형 데이터 범주화

    3.1. pandas cut 메소드

    • cut 메소드를 활용해 연속형 데이터를 구간으로 나눌 수 있음.
    • 나눠진 구간은 범주형 데이터로 변환됨

    ex.

     

    • [0,20,40,60,80,100]이라는 데이터를 구간을 나눠서 카테고리형 데이터로 변환하는 과정임.
    • 저렇게 나눠진 구간에 대해 각 그룹의 이름을 지정해줄 수도 있음.

     

    3.2. 균등한 범위로 나누기

    ⓐ.

    • cut으로 구간을 나눌 때 그룹의 경계값 대신 그룹의 개수를 넘겨줄 수 있음
    • 최소값과 최대값을 기준으로 균등한 길이의 구간을 계산해서 균등한 범위로 나눌 수 있음.
    • 나눠진 구간에 대해서 히스토그램을 그릴 수 있음

    ⓑ.

    • qcut 메소드를 활용하면 각 구간별로 동일한 데이터 개수를 가질 수도 있음.
    • 각 구간의 길이는 데이터 개수에 따라 모두 달라짐

     

    4. 더미 변수 사용하기

    •  더미 변수 : 범주형 변수를 처리할 때 사용하는 기법 중 하나로 머신러닝 모델이 범주형 변수를 처리하기 어려워서 이를 이진 변수로 변환하여 사용한다고 이해

    4.1. 범주형 데이터 변환

    • 머신러닝 모델을 위한 범주형 데이터의 변환 방법
      • one-hot encoding
      • multi-hot encoding

    → k개의 값을 0또는 1 값을 가지는 k개 차원의 벡터로 변환해서 인코딩된다고 이해.

    • one-hot encoding
      • get_dummies 메소드를 사용하여 범주형 변수를 더미 변수로 변환할 수 있음.

     

    • multi-hot encoding
      • 2개 이상의 값을 가지는 데이터를 가지고 있을 수 있음.
      • 먼저 0으로 이루어진 더미 데이터프레임 생성
      • 반복문으로 각 데이터마다 column에 해당하면 1로 채워넣어서 만들수 있음.

     

     

     

     

     


     

    마무리

    여러 데이터를 다뤄보면서 실습해보는 것만이 살 길!

     

     

    댓글