Python のリストから NaN を削除する
-
math.isnan()メソッドを使用して、Python のリストからNaNを削除する -
numpy.isnan()メソッドを使用して、Python のリストからNaNを削除する -
Python の文字列リストから
NaNを削除する -
pandas.isnull()メソッドを使用して、Python のリストからNaNを削除する
このチュートリアルでは、Python のリストから NaN 値を見つけて削除するためのさまざまな方法について説明します。プログラミングの NaN 値は Not a Number を意味します。これは、変数の値が数値ではないことを意味します。
NaN 値が配列またはリストで発生すると、計算で問題やエラーが発生する可能性があります。このチュートリアルでは、リストから文字列値 nan を削除する方法についても検討します。次の方法を使用して、リストから NaN または nan の値を削除できます。
math.isnan() メソッドを使用して、Python のリストから NaN を削除する
math.isnan(value) メソッドは、入力として数値 value を取り、value が NaN 値の場合は True を返し、それ以外の場合は False を返します。したがって、math.isnan() メソッドを使用して、数値のリストまたは配列に NaN 値があるかどうかを確認できます。
if float('NaN') == float('NaN') は Python で False を返すため、math.isnan() メソッドが必要です。Python では 2つの NaN 値が等しくないと言えます。以下のサンプルコードは、math.isnan() メソッドを使用してリストから NaN 値を削除する方法を示しています。
import math
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if math.isnan(x) == False]
print(newlist)
出力:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
numpy.isnan() メソッドを使用して、Python のリストから NaN を削除する
np.isnan(array) メソッドは、入力として array を受け取り、対応するインデックスが NaN 値の場合は True を返し、それ以外の場合は False を返します。
以下のサンプルコードは、numpy.isnan() メソッドを使用してリストから NaN 値を削除する方法を示しています。
import numpy as np
mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if np.isnan(x) == False]
print(newlist)
出力:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Python の文字列リストから NaN を削除する
ここで、数値リストが文字列型に変換され、NaN 値が含まれているかどうかを確認するとします。文字列型に変換すると、NaN 値は'nan'に等しい文字列になり、'nan'と比較することで簡単に検出および削除できます。
以下のサンプルコードは、文字列データ型のリストから NaN 値を削除する方法を示しています。
mylist = [1, 2, "nan", 8, 6, 4, "nan"]
mylist = [str(x) for x in mylist]
print(mylist)
newlist = [x for x in mylist if x != "nan"]
print(newlist)
出力:
['1', '2', 'nan', '8', '6', '4', 'nan']
['1', '2', '8', '6', '4']
pandas.isnull() メソッドを使用して、Python のリストから NaN を削除する
pandas.isnull(obj) は、入力としてスカラーまたは配列のような obj を取り、値が NaN、None、または NaT と等しい場合は True を返します。それ以外の場合は、False を返します。
サンプルコードは、pandas.isnull() メソッドを使用して、Python のリストから NaN 値を削除する方法を示しています。
import pandas as pd
mylist = [1, 2, float("nan"), 8, float("nan"), 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False]
print(newlist)
出力:
[1, 2, nan, 8, nan, 4, nan]
[1, 2, 8, 4]
ここで、リストのタイプがわからない場合、またはリストにさまざまなデータタイプのデータが含まれているかどうかがわからないとします。この場合、リストの各値を'nan'値と比較することにより、pandas.isnull() メソッドを使用して、NaN 値と'nan'値をチェックしてリストから削除できます。
前述のメソッドとは異なり、文字列データ型が入力として指定されている場合、pandas.isnull() メソッドはエラーを返さないため、pandas.isnull() メソッドを使用できます。したがって、pandas.isnull() メソッドを使用して、Python のリストまたは配列から NaN および'nan'の値を削除できます。
以下のサンプルコードは、pandas.isnull() メソッドと'nan'値を使用して、Python のリストから NaN と'nan'の値を削除する方法を示しています。
import pandas as pd
mylist = ["John", 23, "nan", "New York", float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False and x != "nan"]
print(newlist)
出力:
['John', 23, 'nan', 'New York', nan]
['John', 23, 'New York']