본문 바로가기
파이썬(Python)

숫자데이터의 타입 float 을 int 로 변경하기

by 즐거운코딩 2025. 9. 8.
반응형

파이썬에서 엑셀이나 csv로 데이터를 불러올 때 정수 데이터 인데 중간에 데이터가 누락 등 여러 가지 원인으로 float 타입으로 인식되는 경우가 많습니다.

데이터 가공 후 저장할 때 정수 데이터로 표출하기 위해서 몇가지 경우에 따른 수정방법은 다음과 같습니다.

 

float → int 변환 시 NaN 값 때문에 에러가 발생합니다.
(int 타입은 NaN을 가질 수 없기 때문입니다.)

해결 방법은 크게 세 가지가 있습니다.


1.  NaN 을 채운 뒤 int 변환

NaN 을 0이나 다른 값으로 채운 후 astype(int) 변환

import pandas as pd
import numpy as np

df = pd.DataFrame({"num": [1.0, 2.0, np.nan, 4.0]})

# NaN → 0 으로 채우고 int 변환
df["num_int"] = df["num"].fillna(0).astype(int)
print(df)

👉 결과:

   num  num_int
0  1.0        1
1  2.0        2
2  NaN        0
3  4.0        4

2.  NaN 유지하면서 int 로 (pandas nullable int 타입 사용)

Int64 (대문자 I) 타입은 NaN 을 허용하는 정수 타입입니다.

df["num_int"] = df["num"].astype("Int64")
print(df)

👉 결과:

   num  num_int
0  1.0        1
1  2.0        2
2  NaN      <NA>
3  4.0        4

3.  NaN 값은 삭제 후 변환

NaN 이 필요 없는 경우는 drop 후 변환

df = df.dropna(subset=["num"])
df["num_int"] = df["num"].astype(int)

👉 정리하면,

  • NaN 을 다른 값으로 채울 수 있다 → fillna(0).astype(int)
  • NaN 도 유지해야 한다 → astype("Int64")

 

반응형