앎을 경계하기

[가짜연구소3기] Data Engineer

[가짜연구소 3기] 데이터 엔지니어링 27 - Handling errors and missing data

양갱맨 2021. 9. 4. 21:12

주제

플랫 파일을 판다스로 읽을 때 발생하는 흔한 문제들과 해결 방법에 대해 배웠다.


Flat File 사용 시, 흔한 문제들

  • 분석에 방해되는 잘못된 열 데이터 타입
  • 결측값
  • 판다스에서 읽을 수 없는 값

데이터 타입

    • 판다스에서는 자동적으로 열의 데이터 타입을 결정한다.

위 예시에서 우편번호(ZIpcode)를 정수로 해석했다는 것을 알 수 있다.

그러나 우편번호는 '0'이라는 값을 다뤄야할 수도 있다. 그리고 수량이 아니기 때문에 문자열로 모델링된다.

  • dtype을 사용하여 데이터 유형을 직접 설정할 수 있다.
  • {컬럼 이름: 데이터 타입} 인 딕셔너리 형태로 인수를 설정한다.
    tax_data = pd.read_csv('us_tax_data_2016.csv', dtype={'zipcode':str})

결측값 다루기

판다스에서는 N/A, null 같은 값을 자동적으로 인식한다.

 

  • na_values를 사용하여 결측치를 어떻게 처리할 것인지 설정할 수 있다.
  • 단일 값을 넣거나, 리스트, 딕셔너리 형태로 넣을 수 있다.
    tax_data = pd.read_csv('us_tax_data_2016.csv',
    											na_values={'zipcode':0})

파싱 불가능한 줄

판다스가 파싱할 수 없는 줄이 포함된 파일을 읽으면 에러가 발생하게 된다.

  • error_ bad_lines=False를 사용하면 에러 출력 대신 파싱 불가능한 줄을 건너 뛰고 정상적인 줄만 읽어올 수 있도록 설정할 수 있다.
  • warn_bad_lines=True를 사용하면 파싱할 수 없는 줄을 건너 뛸 때 메시지 표시 여부를 설정할 수 있다.