ValueError: Python에서 Float NaN을 정수로 변환할 수 없음

Rohan Timalsina 2023년6월21일
  1. fillna() 메서드를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음 수정
  2. dropna() 메서드를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음 수정
  3. numpy.nan_to_num() 함수를 사용하여 Python에서 ValueError: float NaN을 정수로 변환할 수 없음을 수정합니다.
ValueError: Python에서 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을 정수로 변환할 수 없음을 해결하는 방법을 알았습니다. 이러한 솔루션이 도움이 되기를 바랍니다.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - Python ValueError

관련 문장 - Python Error