○ 개요
데이터 분석을 하다 보면 숫자를 문자열로, 혹은 문자열을 정수나 실수로 바꿔야 할 일이 많습니다. 파이썬의 astype() 함수는 이런 데이터형 변환(type casting) 을 깔끔하고 효율적으로 수행할 수 있게 해주는 강력한 도구입니다. 이 포스트에서는 astype() 함수의 정의부터 실전 예제, 주의사항까지 모두 정리해 드립니다.
○ astype 함수란?
astype() 함수는 Pandas에서 제공하는 메서드로, DataFrame 또는 Series의 데이터 타입을 원하는 자료형으로 변환할 때 사용합니다.
Series.astype(dtype, copy=True, errors='raise')
○ 주요 매개변수 설명
- dtype: 변환하고자 하는 자료형 (예: int, float, 'str', 'category', 'bool' 등)
- copy: True일 경우, 원본을 변경하지 않고 복사본을 반환
- errors: 'raise' 또는 'ignore'. 변환 불가 시 오류를 발생시킬지 무시할지 결정
○ 사용 예제
import pandas as pd
df = pd.DataFrame({
'나이': ['25', '30', '40'],
'성별': ['남', '여', '남']
})
# 나이를 정수형으로 변환
df['나이'] = df['나이'].astype(int)
# 성별을 범주형으로 변환
df['성별'] = df['성별'].astype('category')
print(df.dtypes)
# 출력 결과
나이 int64
성별 category
dtype: object
○ astype 사용 시 주의할 점
- 변환하려는 값이 실제로 변환 가능한 값이어야 합니다. 예를 들어 'abc'를 int로 바꾸려 하면 오류가 발생합니다.
- 잘못된 타입 변환은 ValueError를 유발하므로 errors='ignore' 옵션을 적절히 활용하세요.
- astype()은 Pandas 객체 전용입니다. NumPy 배열이나 일반 리스트에서는 사용할 수 없습니다.
○ astype vs to_numeric의 차이점
| 구분 | astype | pd.to_numeric |
| 주 사용 용도 | 명확한 자료형 지정 | 숫자형으로 자동 파싱 |
| 오류 처리 옵션 | errors='raise', 'ignore' | errors='coerce', 'ignore', 'raise' |
| 사용 대상 | Series 또는 DataFrame | 주로 Series |
○ 정리
- astype()은 데이터 타입을 명시적으로 바꾸는 가장 기본적인 방법
- copy, errors 옵션으로 동작을 세밀하게 제어할 수 있음
- 숫자 변환에는 pd.to_numeric()도 유용하므로 상황에 맞게 선택
'Python 코드' 카테고리의 다른 글
| [Python] DataFrame.fillna() (0) | 2025.10.22 |
|---|---|
| [Python] Keras(TensorFlow) (3) | 2025.07.17 |
| [Python] DataFrame.replace() (1) | 2025.07.13 |
| [Python] pandas.get_dummies() (1) | 2025.07.12 |
| [Python] DataFrame.drop() (1) | 2025.07.12 |