hanker

Python - pandas 데이터 타입 변환 본문

Python

Python - pandas 데이터 타입 변환

hanker 2025. 2. 26. 02:58
반응형

데이터 분석을 할 때, 데이터의 정확한 타입을 확인하고 필요에 따라 변환하는 과정은 매우 중요하다.

잘못된 데이터 타입은 계산 오류나 분석 결과의 왜곡을 초래할 수 있기 때문에, pandas에서는 다양한 메서드와 함수를 제공한다.

 

이번 글에서는 pandas의 데이터 타입을 변환하는 방법에 대해서 알아보자.

 


1. astype() 메서드로 데이터 타입 변환

 

astype() 메서드는 데이터프레임이나 시리즈의 데이터 타입을 원하는 타입으로 변환할 때 많이 사용된다.

단일 열뿐 아니라 여러 열을 한 번에 변환할 수도 있다.

 

1-1. 단일 열 변환

문자열로 저장된 숫자들을 정수형으로 변환

import pandas as pd

# 예제 DataFrame 생성
df = pd.DataFrame({
    'A': ['1', '2', '3'],
    'B': [4.0, 5.5, 6.1]
})

# 문자열 타입인 A열을 정수형으로 변환
df['A'] = df['A'].astype(int)
print(df)
print(df.dtypes)

 

 

1-2. 여러 열 동시에 변환

astype()에 딕셔너리를 전달하여 각 열마다 원하는 데이터 타입으로 변환

import pandas as pd

# 여러 열의 데이터 타입을 한 번에 변환
df = pd.DataFrame({
    'col1': ['1', '2', '3'],
    'col2': ['4.5', '5.5', '6.1'],
    'col3': [7, 8, 9]
})

df = df.astype({'col1': 'int', 'col2': 'float', 'col3': 'str'})
print(df)
print(df.dtypes)

 

 


2. pd.to_numeric() 함수

 

pd.to_numeric() 함수는 숫자로 표현된 문자열을 숫자형 데이터로 변환할 때 유용하다.

특히 변환할 수 없는 값이 포함된 경우, errors 옵션을 사용해 에러 처리를 할 수 있다.

 

2-1. 숫자형 변환과 에러 처리

import pandas as pd

df = pd.DataFrame({
    'numbers': ['10', '20', 'invalid', '40']
})

# 변환 불가능한 값은 NaN으로 대체
df['numbers'] = pd.to_numeric(df['numbers'], errors='coerce')
print(df)
print(df.dtypes)

errors='coerce' 옵션을 사용하면, 변환할 수 없는 값은 자동으로 NaN으로 처리된다.

 


3. pd.to_datetime() 함수

 

날짜나 시간 데이터를 datetime 타입으로 변환할 때는 pd.to_datetime() 함수를 사용한다.

다양한 날짜 포맷을 자동으로 인식하여 변환해줘서 날짜 데이터를 다룰 때 매우 편리하다.

 

3-1. 날짜 데이터 변환

import pandas as pd

df = pd.DataFrame({
    'date': ['2023-01-01', '2023/02/01', 'March 3, 2023']
})

# 문자열로 된 날짜를 datetime으로 변환
df['date'] = pd.to_datetime(df['date'], format='mixed')
print(df)
print(df.dtypes)

 


4. pd.to_timedelta() 함수

 

시간 간격이나 지속 시간을 표현하는 데이터를 변환할 때는 pd.to_timedelta() 함수를 사용한다.

 

4-1. 시간 간격 데이터 변환

import pandas as pd

df = pd.DataFrame({
    'duration': ['1 days', '2 days 03:00:00', '4:30:00']
})

# 문자열을 timedelta로 변환
df['duration'] = pd.to_timedelta(df['duration'])
print(df)
print(df.dtypes)

문자열로 표현된 시간 간격 데이터를 timedelta 타입으로 변환한다.

 


정리

 

pandas의 다양한 데이터 타입 변환 방법을 통해 데이터 전처리와 분석과정을 더욱 효율적으로 진행할 수 있다.

 

 

끝.

반응형