혼자 공부하는 데이터 분석 3주차: 데이터 정제하기
2024. 7. 21. 23:04

 

불필요한 데이터 삭제하기
  • 데이터 정제
    • 데이터에서 손상되거나 부정확한 부분을 수정하고 불필요한 데이터를 삭제하거나 불완전한 값을 교체하는 작업
  • 데이터 랭글링 / 데이터 먼징
    • 데이터를 정제하는 과정과 데이터 분석 및 머신러닝에 적합한 형태로 데이터를 변환하는 과정
  • 열 삭제하는 방법
    • loc 메서드에 슬라이싱 사용
    • loc 메서드 & 불리언 배열 사용
    • drop() 메서드  / inplace = True (선택한 데이터프레임에 덮어쓰기)
    • dropna() 메서드 / how = 'all' (모든 값이 결측치인 열 삭제 시 사용되는 매개변수)
  • 행 삭제하는 방법
    • drop() 메서드 사용
    • [] 연산자와 슬라이싱
    • [] 연산자와 불리언 배열
  • 중복된 행 찾기
    • subset() 매개변수 (일부 열을 기준으로 중복된 행을 찾음) 
    • duplicated() 메서드 / keep =False (중복된 모든 행을 True로 표시한 불리언 배열 반환)
  • 그룹별로 모으기
    • groupby() 메서드 / by= [ 기준이 되는 열] (행을 합칠 때 기준이 되는 열을 지정하는 매개변수)
    • groupby() 메서드는 기본적으로 by 매개변수에 지정된 열에 결측치가 포함되어 있으면 해당 행을 삭제한다.
    • 해결 방안: dropna = False 지정 (결측치가 있는 행을 삭제 하지 않음)
  • 원본 데이터 업데이트하기
    • 중복된 행을 True로 표시한 불리언 배열을 반전시킬 때는 판다스의 ~연산자 사용
    • copy() 메서드는 데이터프레임의 복사본을 생성하는데 판다스는 만들고자 하는 데이터프레임이 별도의 메모리 공간에 저장되는지 보장하지 않기 때문에 데이터를 업데이트할 때는 항상 복사본을 생성하는 것이 좋다.
    • set_index() 메서드 (지정한 열을 인덱스로 설정)
    • update() 메서드 (다른 데이터프레임을 사용해 원본 데이터프레임의 값을 업데이트)
    • reset_index() 메서드 (열 재설정시 사용)
잘못된 데이터 수정하기
  • 데이터프레임 정보 요약 확인하기
    • info() 메서드 (데이터프레임 정보를 요약해서 출력)
  • 누락된 값 처리하기
    • isna() 메서드 (누락된 값 개수를 확인) / isnull() 메서드도 많이 활용한다.
    • notna() 메서드 (누락되지 않은 값을 확인)
  • 누락된 값으로 표시하기:None 과 np.nan
    • 판다스 데이터 프레임에서는 정수를 저장하는 열에 파이썬의 None을 입력하면 누락된 값으로 인식
    • astype() 메서드 (데이터 타입을 지정시 사용)
    • 정수를 저장하는 열이 아닌 다른 열에는 numpy 패키지를 임포트하여 np.nan으로 지정해줘야 결측치로 값이 지정된다.
  • 누락된 값 바꾸기
    • fillna() 메서드에 원하는 값 전달시 결측치 대체 가능
    • replace() 메서드 
      1. 바꾸려는 값이 하나일때
        • replace( 원래 값, 새로운 값)
      2. 바꾸려는 값이 여러 개일때
        • replace([원래값1,원래값2], [새로운 값1, 새로운 값2])
        • replace({원래값1: 새로운 값1, 원래값2 : 새로운 값2})
      3. 열마다 다른 값으로 바꿀 때
        • replace ({열 이름: 원래 값}, 새로운 값)
    • 정규 표현식
      • 숫자 찾기: \d
        • 숫자에 대응하는 정규 표현식은 \d를 사용
        • regex = True ( 정규표현식을 사용한다는 매개변수 옵션)
        • \d\d\d\d 네 자리 연도를 뒤에 두 자리만 하나의 그룹으로 묶을 시 \d\d(\d\d)로 쓴다.
        • 패턴 안에 있는 그룹을 나타낼 시 \1,\2와 같이 사용
        • 정규표현식 앞에 붙인 r문자는 파이썬에서 정규표현식을 다른 문자열과 구분하기 위해서이다.
        • 정규표현식이 반복될 시 중괄호를 사용하여 개수 지정 가능 
      • 문자 찾기: 마침표(.)
        • 숫자가 아닌 다른 모든 문자에 대응하는 정규 표현식은 /D를 사용
        • 정규표현식에서는 괄호는 그룹을 나타내는 데 사용하기 때문에 문자로 인식하게 하려면 \를 앞에 붙여준다.
        • 띄어쓰기가 있을 시에는 공백문자를 나타내는 정규표현식 \s를 앞에 붙인다.
        • 반복 개수를 지정하기 어려울 때는 *를 사용하여 0개 이상 반복된다고 표시
    • 잘못된 값 바꾸기
      • contains() 메서드 (시리즈나 인덱스에서 문자열 패턴을 포함하고 있는지 검사)
        • na = True 매개변수 (누락된 행을 True로 표시)
        • gt () 메서드 (전달된 값보다 큰 값을 찾음)
        • ge () 메서드 (전달된 값보다 크거나 같은 값을 찾음)
        • lt () 메서드 (전달된 값보다 작은 값을 찾음)
        • le () 메서드 ( 전달된 값보다 작거나 같은 값을 찾음)
        • eq () 메서드 ( 전달된 값과 같은 값을 검사)
        • ne() 메서드 (전달된 값과 같지 않은 값을 찾음)

 

숙제