name 열이 카테고리 형식으로 변환되며, 이는 고유한 값만을 메모리에 저장하여 메모리 사용량을 줄입니다.
6. 데이터 형식 변경 시 주의사항
변환 오류: 데이터 형식을 변환할 때, 형식에 맞지 않는 데이터가 있으면 오류가 발생할 수 있습니다. 예를 들어, 숫자 형식으로 변환하려고 할 때 숫자가 아닌 값이 포함되어 있으면 ValueError가 발생합니다.
data = {'name': ['Alice', 'Bob', 'Charlie'],'age': ['25a', '30', '35'], # 나이를 문자열로 저장'birthdate': ['1995-05-15', '1990-08-25', '1985-12-20'] # 날짜도 문자열로 저장}df = pd.DataFrame(data)df['age'] = df['age'].astype(int) # '25a' 같은 값이 있으면 오류 발생
ValueError: invalid literal for int() with base 10: '25a'
결측치 처리: 결측치(NaN)가 있는 열을 변환할 때는 주의가 필요합니다. 예를 들어, 문자열을 숫자로 변환할 때 결측치는 그대로 남아 있게 됩니다.
import numpy as npdata = {'name': ['Alice', 'Bob', 'Charlie'],'age': ['25', '30', np.NaN], # 나이를 문자열로 저장'birthdate': ['1995-05-15', '1990-08-25', '1985-12-20'] # 날짜도 문자열로 저장}df = pd.DataFrame(data)df['age'] = pd.to_numeric(df['age'], errors='coerce') # 숫자가 아닌 값을 NaN으로 변환df
name
age
birthdate
0
Alice
25.0
1995-05-15
1
Bob
30.0
1990-08-25
2
Charlie
NaN
1985-12-20
메모리 사용량: 카테고리 형식은 메모리 사용량을 줄일 수 있지만, 데이터에 고유 값이 많을 경우 성능에 영향을 줄 수 있습니다. 따라서 카테고리 형식은 고유 값이 적은 열에 사용하는 것이 좋습니다.
7. 결론
Pandas에서 데이터 형식을 올바르게 지정하는 것은 데이터 분석의 기초이며, 정확한 분석 결과를 얻기 위해 매우 중요합니다. 이 글에서 소개한 astype(), pd.to_datetime(), pd.to_numeric() 등을 사용하면 다양한 형식의 데이터를 손쉽게 변환할 수 있습니다.