2022-07-03 08:23:28

오늘은 판다스 데이터프레임에서 특정 컬럼의 자료형을 바꾸는 방법에 대해서 정리하도록 하겠습니다. 우선 다음과 같은 데이터프레임을 하나 만들겠습니다. 데이터프레임을 만들 때는 딕셔너리를 데이터프레임으로 변환하는 방식을 많이 사용합니다. 

 

import pandas as pd

dict_data = {'연도':['2020', '2021', '2022'], '스트레스지수':[58, 78, 99]}
df = pd.DataFrame(dict_data)
print(df)

 

 

데이터프레임 컬럼 자료형 확인

이 데이터프레임의 각 컬럼의 자료형은 다음과 같습니다. 데이터프레임의 자료형은 데이터프레임 객체의 dtypes 속성으로 확인할 수 있습니다. 

 

print(df.dtypes)

 

 

연도 컬럼의 자료형은 object, 스트레스지수 컬럼의 자료형은 int64로 되어 있습니다. 판다스에서 object 자료형은 문자열 자료형을 의미합니다. 

 

데이터프레임 컬럼 자료형 변경

첫번째 방법

연도 컬럼의 자료형을 정수형으로 변환해보겠습니다. 시리즈 객체의 astype 메소드를 사용하시면 됩니다. 연도 컬럼만 선택한 df['연도']는 시리즈입니다. 

 

df['연도'] = df['연도'].astype('int')
print(df.dtypes)

 

 

연도 컬럼의 자료형이 object에서 int64로 바뀐 것을 확인하실 수 있습니다. 

 

두번째 방법

데이터프레임 객체의 astype 메소드를 활용하여 특정 컬럼의 자료형을 변환하는 것도 가능합니다. 이번에도 연도 컬럼의 자료형을 정수형으로 바꿔보겠습니다. 

 

df = df.astype({'연도':'int'})
print(df.dtypes)

 

결과는 위와 동일합니다.

 

두번째 방법은 한 번에 여러 개 컬럼의 데이터 타입을 변경할 때도 사용가능합니다.

 

df = df.astype({'컬럼1':'새자료형', '컬럼2':'새자료형', ...}

 

연도 컬럼의 자료형을 int로 바꾸면서 동시에 스트레스지수 컬럼의 자료형은 str로 바꿔보겠습니다.

 

df = df.astype({'연도':'int', '스트레스지수':'str'})
print(df.dtypes)

 

 

이제 스트레스지수에 있는 숫자들은 더 이상 숫자가 아니라 문자열입니다. 

 

관련 글

- 1일 1포스팅은 정말 중요한가? 누적 방문수 3백만 블로그 분석 결과 공유