일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- spring
- IntelliJ
- Linux
- 리눅스
- PostgreSQL
- mysql
- isempty
- Python
- 명령어
- mssql
- 호이스팅
- pem
- java
- pandas
- 자바
- iBatis
- MongoDB
- Javascript
- MariaDB
- oracle
- analytics4
- 오블완
- DBMS
- isNotEmpty
- SQL
- git
- github
- docker
- 티스토리챌린지
- Kibana
- Today
- Total
hanker
Python - pandas 데이터 타입 변환 본문
데이터 분석을 할 때, 데이터의 정확한 타입을 확인하고 필요에 따라 변환하는 과정은 매우 중요하다.
잘못된 데이터 타입은 계산 오류나 분석 결과의 왜곡을 초래할 수 있기 때문에, 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의 다양한 데이터 타입 변환 방법을 통해 데이터 전처리와 분석과정을 더욱 효율적으로 진행할 수 있다.
끝.
'Python' 카테고리의 다른 글
pandas - drop_duplicates() (중복 데이터 제거하기) (0) | 2025.03.01 |
---|---|
Python - pandas 데이터 정렬하기 (sort_values() 옵션 파헤치기) (0) | 2025.02.28 |
Python - 결측치 (Missing Value) 처리 방법 (0) | 2025.02.23 |
Python - Pandas를 활용한 데이터 분석 (설치 및 사용법) (0) | 2025.02.16 |
Python - NumPy 연산 및 함수 활용 (0) | 2025.02.14 |