在 Python 中從列表中移除 NaN
-
在 Python 中使用
math.isnan()
方法從列表中刪除NaN
-
在 Python 中使用
numpy.isnan()
方法從列表中刪除NaN
-
在 Python 中從字串列表中刪除
NaN
-
在 Python 中使用
pandas.isnull()
方法從列表中刪除NaN
本教程將探討各種方法,以從 Python 列表中查詢和刪除 NaN
值。程式設計中的 NaN
值表示 Not a Number
,這意味著變數的值不是數字。
如果陣列或列表中出現 NaN
值,則會在計算中產生問題和錯誤。我們還將研究從本教程的列表中刪除字串值 nan
的方法。我們可以使用以下方法從列表中刪除 NaN
或 'nan'
值。
在 Python 中使用 math.isnan()
方法從列表中刪除 NaN
math.isnan(value)
方法採用數字 value
作為輸入,如果 value
是 NaN
值,則返回 True
,否則返回 False
。因此,我們可以使用 math.isnan()
方法檢查列表或數字陣列中是否存在 NaN
值。
我們需要 math.isnan()
方法,因為 if float('NaN') == float('NaN')
在 Python 中返回 False
,或者我們可以說兩個 NaN
值在 Python 中不相等。下面的示例程式碼演示瞭如何使用 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]
在 Python 中使用 numpy.isnan()
方法從列表中刪除 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']
在 Python 中使用 pandas.isnull()
方法從列表中刪除 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]
現在假設我們不知道列表的型別,或者列表是否包含各種資料型別的資料。在這種情況下,我們可以使用 pandas.isnull()
方法,通過將列表中的每個值與'nan'
值進行比較,來檢查並從列表中刪除 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']