본문 바로가기

Pandas/전처리

판다스 - 자료형 변환 : astype, pd.to_numeric

반응형

데이터 불러오기

 

 

문제가 있는 열은 total_bill로서, [1, 3, 5, 7]행은 missing이라는 문자열이 들어가 있다.

 

 

 

 

 

데이터 타입을 확인해도 숫자가 아닌 object형으로 되어있다.

 

 

 

[목적 : total_bill 컬럼을 float형으로 바꾸기]

 

 

 

astype(), pd.to_numeric()

 

 

missing이라는 문자열이 있기 때문에 두 방법 모두 오류 발생

 

 

 

 

방법1 : replace 이용

 

 

 

missing을 NaN으로 바꾼 뒤 astype 실행

 

 

 

total_bill_replaced 컬럼이 float형으로 바뀐 것을 확인

 

 

 

 

 

 

방법2. pd.to_numeric(errors='coerce') 이용

 

 

coerce의 뜻 억압하다, 강요하다와 같이 문자열을 강제로 NaN으로 바꾸면서

 

동시에 float형으로 만들었다.

 

 

 

 

 

* downcast

 

저장하는 실수의 범위가 크지 않다면 메모리를 줄이기 위해 downcast를 이용할 수 있다.

 

 

float64는 float32보다 더 많은 범위의 실수를 표현할 수 있으나

 

메모리 공간을 2배나 차지한다.

 

저장하는 실수의 예상 범위가 크지 않다면 다운캐스트 하는 것이 좋다.

 

 

 

 

 

데이터 불러오기

 

 

origin 컬럼은 1, 2, 3으로 값이 구성되어 있으며

 

자료형은 int이고 이는 각 국가와 연결되어 있다.

 

이렇게 숫자로서 큰 의미가 없다면 카테고리형(범주형) 데이터로 표현하는 것이 효율적이다.

 

 

 

 

replace와 딕셔너리를 이용해 값을 변경했다.

 

 

 

 

astype을 이용해 범주형 데이터로 바꿨다.

 

 

반응형