ValueError: Python에서 Float NaN을 정수로 변환할 수 없음
-
fillna()
메서드를 사용하여 Python에서ValueError: float NaN을 정수로 변환할 수 없음
수정 -
dropna()
메서드를 사용하여 Python에서ValueError: float NaN을 정수로 변환할 수 없음
수정 -
numpy.nan_to_num()
함수를 사용하여 Python에서ValueError: float NaN을 정수로 변환할 수 없음
을 수정합니다.
함수에 유효한 인수를 제공했지만 유효하지 않은 값인 경우 ValueError
가 발생합니다. 예를 들어 math
모듈의 sqrt()
함수에 음수를 제공하면 ValueError
가 발생합니다.
Python에서 NaN
은 데이터 세트에서 누락된 항목을 나타내는 숫자가 아님
을 의미합니다. float 이외의 타입으로 변환할 수 없는 특별한 float 값입니다.
ValueError: float NaN을 정수로 변환할 수 없음
은 NaN
값을 정수 유형으로 변환하려고 할 때 발생합니다.
이 튜토리얼은 Python에서 ValueError: float NaN을 정수로 변환할 수 없음
을 수정하는 방법을 알려줍니다.
fillna()
메서드를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음
수정
다음 데이터 세트를 사용하여 가격 데이터를 정수 유형으로 변환했습니다.
다음은 Python에서 ValueError: cannot convert float NaN to integer
의 예입니다.
# import pandas
import pandas
# read csv file
df = pandas.read_csv("itemprice.csv")
# convert to an integer type
df["price"] = df["price"].astype(int)
출력:
pandas.errors.IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integer
데이터 세트에는 두 개의 NaN
값이 있습니다. NaN
값을 0
으로 바꾸면 이 문제를 해결할 수 있습니다.
fillna()
메서드는 NaN
값을 파이썬에서 주어진 값으로 바꿉니다. 열의 NaN
값을 확인하고 지정된 값으로 채웁니다.
df_new = df.fillna(0)
print(df_new)
출력:
items price
0 A 540.0
1 B 370.0
2 C 0.0
3 D 220.0
4 E 0.0
이제 float 유형을 정수 유형으로 변환하십시오.
df_new["price"] = df_new["price"].astype(int)
확인할 데이터 유형을 확인하십시오.
print(df_new["price"].dtype)
출력:
int32
dropna()
메서드를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음
수정
dropna()
메서드는 DataFrame 개체에서 모든 NULL
값을 제거합니다.
다음 예는 데이터 세트에서 NULL
값을 포함하는 행을 제거합니다.
df_new = df.dropna()
print(df_new)
출력:
items price
0 A 540.0
1 B 370.0
3 D 220.0
이제 데이터를 정수형으로 쉽게 변환할 수 있습니다.
df_new["price"] = df_new["price"].astype(int)
print(df_new["price"].dtype)
출력:
int32
numpy.nan_to_num()
함수를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음
을 수정합니다.
numpy.nan_to_num()
함수를 사용하여 이 오류를 해결할 수도 있습니다. NaN
값을 정수로 변환할 수 있는 0.0
으로 변경합니다.
import numpy
dt = numpy.nan
print(dt)
출력:
nan
numpy.nan_to_num()
함수를 사용하여 NaN
값을 0.0
으로 바꿉니다.
dt = numpy.nan_to_num(dt)
print(dt)
출력:
0.0
그런 다음 정수 유형으로 변환하십시오.
dt = dt.astype(int)
print(dt.dtype)
출력:
int32
NaN
값을 정수 유형으로 변환하려고 하면 ValueError: float NaN을 정수로 변환할 수 없음
이 발생합니다. NaN
값을 지정된 값으로 채우거나 NaN
값이 포함된 행을 삭제하여 이 문제를 해결할 수 있습니다.
이제 Python에서 ValueError: float NaN을 정수로 변환할 수 없음
을 해결하는 방법을 알았습니다. 이러한 솔루션이 도움이 되기를 바랍니다.
관련 문장 - Python ValueError
관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.