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']