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