[Pandas] 데이터 타입 확인 및 변환 – dtypes, astype

2025. 4. 24. 11:03·python/Pandas | Numpy
목차
  1. 예제 데이터
  2. 데이터 타입 확인 – .dtypes
  3. 타입 변환 – .astype
  4. float → int 주의주의주의
  5. 날짜 문자열을 datetime 타입으로
  6. 범주형 데이터로 변환 – astype′category′′category′'category'
  7. 주의사항
  8. 예제: 초기 로딩 시 타입 지정
728x90

실제 데이터를 다루다 보면 이런 경험, 한 번쯤 해봤을 것이다:

  • 숫자인 줄 알았는데 문자열objectobject이라 연산이 안 된다
  • 날짜인 줄 알았는데 그냥 문자열이라 정렬이 이상하게 나온다
  • 정수로 보여도 float64라 데이터 저장 용량이 크다

이처럼 Pandas에서 데이터 타입이 올바르지 않으면 연산 오류, 성능 저하, 분석 왜곡 등 수많은 문제가 발생할 수 있다.

 

예제 데이터

import pandas as pd

df = pd.DataFrame({
    'user_id': ['1001', '1002', '1003'],
    'age': ['25', '30', '35'],        # 문자열로 들어온 숫자
    'score': [88.0, 92.5, 85.0],
    'signup_date': ['2023-01-01', '2023-02-15', '2023-03-20']
})


데이터 타입 확인 – .dtypes

df.dtypes

→ 숫자인 age도 문자열로 들어왔고, signup_date도 날짜가 아닌 문자열 상태임을 확인


타입 변환 – .astype

문자열 숫자를 정수형으로

df['age'] = df['age'].astype(int)

→ object → int64로 변환

 

정수형을 문자열로

df['user_id'] = df['user_id'].astype(str)

→ 숫자를 고유 ID 문자열로 유지하고 싶을 때 사용

 

float → int 주의주의주의

df['score'].astype(int)  # 92.5 → 92로 소수점 절삭됨

→ 정수로 바꾸면 반올림 없이 내림이므로 주의


날짜 문자열을 datetime 타입으로

df['signup_date'] = pd.to_datetime(df['signup_date'])

→ object → datetime64[ns]

  • datetime 타입으로 바꾸면 dt.year, dt.month, dt.day, dt.weekday 등 다양한 속성 사용 가능

 

범주형 데이터로 변환 – astype′category′′category′'category'

df['user_type'] = ['basic', 'premium', 'basic']
df['user_type'] = df['user_type'].astype('category')

  • 저장 공간 절약 특히반복되는값이많을때효과적특히반복되는값이많을때효과적
  • .cat.codes로 정수 라벨 매핑 가능

주의사항

숫자처럼 보이는 문자열은 꼭 변환해줘야 한다

df['age'].mean()  # object이면 오류 발생

→ .astypeintint로 먼저 변환하지 않으면 수치 계산 불가

 

astype 실패 예외 처리하기

df['age'] = pd.to_numeric(df['age'], errors='coerce')

→ 변환 실패 시 NaN으로 처리 에러방지용에러방지용


예제: 초기 로딩 시 타입 지정

df = pd.read_csv('data.csv', dtype={'user_id': str, 'age': int})

→ 데이터가 처음부터 잘못 들어오는 것을 사전에 차단할 수 있음

 

 

 

Pandas에서 데이터 타입 관리는 선택이 아닌 필수다.
정확한 타입을 지정해야만, 연산 오류 없이 빠르고 안정적인 분석이 가능하다.

dtypes로 현재 상태를 확인하고,
astype, to_datetime, to_numeric 등으로 상황에 맞는 변환을 해주는 습관을 들어야합니다.

728x90
반응형
저작자표시 비영리 변경금지 새창열림새창열림

'python > Pandas | Numpy' 카테고리의 다른 글

[Pandas] filter  00 2025.04.24
[Pandas] 조건 조합 필터링 및 추출  00 2025.04.24
[Pandas] 결측치NaNNaN 처리  00 2025.04.24
[Pandas] 정렬과 순위 매기기 – sort_values, rank  00 2025.04.24
[Pandas] Boolean Indexing 조건필터링조건필터링  00 2025.04.24
  1. 예제 데이터
  2. 데이터 타입 확인 – .dtypes
  3. 타입 변환 – .astype
  4. float → int 주의주의주의
  5. 날짜 문자열을 datetime 타입으로
  6. 범주형 데이터로 변환 – astype′category′′category′'category'
  7. 주의사항
  8. 예제: 초기 로딩 시 타입 지정
'python/Pandas | Numpy' 카테고리의 다른 글
  • [Pandas] filter
  • [Pandas] 조건 조합 필터링 및 추출
  • [Pandas] 결측치NaNNaN 처리
  • [Pandas] 정렬과 순위 매기기 – sort_values, rank
Balang
Balang
음악 전공생의 개발일지
  • Balang
    Balang
    Balang
  • 전체
    오늘
    어제
  • 반응형
    • All Post 147147 N
      • python 4545
        • selenium 44
        • algorithm 99
        • Django 66
        • Pandas | Numpy 2222
      • SQL 99
      • Data Engineer 2929
      • Data Scientist 33
      • Data Analysis 99
      • Computer Science 3535
      • Why? 1515
      • 마음가짐 22 N
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Balang
[Pandas] 데이터 타입 확인 및 변환 – dtypes, astype
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.