ValueError: Python で Float NaN を整数に変換できません
-
Python で
fillna()
メソッドを使用してValueError: cannot convert float NaN to integer
を修正する -
Python で
dropna()
メソッドを使用してValueError: cannot convert float NaN to integer
を修正する -
numpy.nan_to_num()
関数を使用して、Python でValueError: cannot convert float NaN to integer
を修正する
関数に有効な引数を与えると ValueError
が発生しますが、それは無効な値です。 たとえば、math
モジュールの sqrt()
関数に負の数を指定すると、ValueError
が返されます。
Python では、NaN
は Not a Number
を意味し、データセット内のエントリが欠落していることを示します。 float 以外の型に変換できない特別な float 値です。
NaN
値を整数型に変換しようとすると、ValueError: cannot convert float NaN to integer
が発生します。
このチュートリアルでは、Python で ValueError: cannot convert float NaN to integer
を修正する方法を説明します。
Python で fillna()
メソッドを使用して ValueError: cannot convert float NaN to integer
を修正する
次のデータセットを使用して、価格データを整数型に変換しました。
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
データセットには 2つの NaN
値があります。 この問題は、NaN
値を 0
に置き換えることで解決できます。
fillna()
メソッドは、NaN
値を Python の特定の値に置き換えます。 列の 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
Python で dropna()
メソッドを使用して ValueError: cannot convert float NaN to integer
を修正する
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: cannot convert float NaN to integer
を修正する
numpy.nan_to_num()
関数を使用してこのエラーを解決することもできます。 NaN
値を 0.0
に変更します。これは整数に変換できます。
import numpy
dt = numpy.nan
print(dt)
出力:
nan
NaN
値を 0.0
に置き換えるには、numpy.nan_to_num()
関数を使用します。
dt = numpy.nan_to_num(dt)
print(dt)
出力:
0.0
次に、整数型に変換します。
dt = dt.astype(int)
print(dt.dtype)
出力:
int32
NaN
値を整数型に変換しようとすると、ValueError: cannot convert float NaN to integer
が発生します。 NaN
値を指定した値で埋めるか、NaN
値を含む行を削除することで、この問題を解決できます。
これで、Python で ValueError: cannot convert float NaN to integer
を解決する方法がわかりました。 これらのソリューションがお役に立てば幸いです。
関連記事 - Python ValueError
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません