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