[Python pandas] astype 사용 시 None 값을 남기고 싶은 경우

hwwwa·2022년 1월 18일
1

🐼 Python

목록 보기
11/18

DataFrame으로 데이터를 분석하던 중 null 값이 포함 된 컬럼의 자료형을 int로 바꾸려고 시도하였으나 아래와 같은 오류가 발생함

pandas.errors.IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer

해결 방법

NaN에 해당하는 값들을 -1로 임시로 변경해준 뒤 -1인 값들을 다시 None으로 변경

df[col] = df[col].fillna(-1).astype('int8').replace({-1: None})

바꾸려는 컬럼은 0~9 범위의 int 값과 null 값을 가지는 컬럼이며 NaN 대신 None을 사용하고 싶어서 위와같이 코드를 작성함

NaN으로 다시 채우고 싶다면 replace({-1: np.nan}) 으로 변경

0개의 댓글