데이터분석 공부/DSBA 4기

파이썬 데이터프레임 astype( ) 으로 데이터 자료형 변경하기

이삼오 2024. 3. 8. 15:33

1. astype( ) 메서드 사용법

데이터프레임 속의 데이터 타입을 바꿔주는 astype( ) 메서드 사용법은 다음과 같다. 

 

df.astype(dtype, copy=True, errors='raies')

- dtype : 변경할 데이터 타입을 입력한다.

- copy : 사본 생성 여부로 bool 타입으로 입력한다.

            입력하지 않을 때 기본값은 True로 copy=False는 원본 데이터를 변경시키므로 주의가 필요하다. 

- errors : 데이터 타입을 오류를 발생시킬지 여부로 'raies', 'ignore' 로 입력한다.

             'raies' : 오류 발생 O => 오류 문구가 반환된다. 

             'ignore' : 오류 발생 X => 변경 불가능한 요소는 기존 dtype 그대로 보존된다. 

 

2. astype( ) 메서드 사용 예시

아래의 pop_seoul2 데이터를 활용해 데이터 타입을 바꿔보자.

지난 글에서 인구수, 내국인, 외국인, 고령자 데이터 속의 콤마를 .replace() 메서드로 없애줬다. .info( ) 메서드로 확인해본 결과 데이터는 여전히 문자열, object 자료형이다. 

 

2-1) astype( ) 

pop_seoul2['인구수'] = pop_seoul['인구수'].astype(int)
pop_seoul2['외국인'] = pop_seoul['외국인'].astype(int)
pop_seoul2['내국인'] = pop_seoul['내국인'].astype(int)
pop_seoul2['고령자'] = pop_seoul['고령자'].astype(int)

 

int 자료형으로 바꿀 컬럼을 하나씩 불러와서 astype(int)로 데이터 타입을 변경하고 이를 기존 컬럼에 적용시켰다.

처음 astype() 메서드를 사용할 때 이해하기 편한 코드이다.

반복문을 활용한 경우는 다음과 같다.  

 

2-2) for문을 활용한 astype( )

col_to_astype = ['인구수', '내국인', '외국인', '고령자']

for i in col_to_astype:
    pop_seoul2[i] = pop_seoul2[i].astype(int)

 

col_to_astype이라는 이름으로 타입을 변경할 컬럼명이 담긴 리스트를 만들고

for문을 활용해 각 컬럼에 astype(int)가 반복 적용되도록 했다. 

 

2-3) 반복문을 사용하지 않아도 되는 경우

아래의 데이터처럼 타입을 변경할 컬럼의 수가 적은 경우, 반복문을 사용하면 오히려 번거롭다. 

 

tdf_ns['South'] = tdf_ns['South'].astype(int)
tdf_ns['North'] = tdf_ns['North'].astype(int)
col_tdf = ['South', 'North']

for i in col_tdf:
    tdf_ns[i] = tdf_ns[i].astype(int)

 

위의 두 코드는 같은 결과를 반환한다.