在 Python 中从列表中移除 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']
相关文章
如何在 Python 中查找列表中的最大值
发布时间:2023/12/18 浏览次数:192 分类:Python
-
它演示了如何在 Python 中寻找列表中的最大值。本教程将涵盖一些场景和数据类型,从简单的整数列表到更复杂的结构,如数组中的数组。
用 Python 将两个列表转换为字典
发布时间:2023/12/18 浏览次数:91 分类:Python
-
它演示了如何在 Python 中把列表转换成字典。本教程将介绍如何在 Python 中把两个列表转换为字典,其中一个列表包含字典的键,另一个包含值。
在 Python 中查找列表中的字符串
发布时间:2023/12/18 浏览次数:110 分类:Python
-
本教程演示了如何在 Python 中查找具有特定子字符串的元素。我们将使用下面的列表并提取其中有 ack 的字符串。my_list = ["Jack", "Mack", "Jay", "Mark"]
用 Python 将两个列表相乘
发布时间:2023/12/18 浏览次数:137 分类:Python
-
本教程演示了如何在 Python 中对两个列表进行乘法。本教程将演示在 Python 中执行两个列表元素相乘的各种方法。
用 Python 查找列表中元素的所有索引
发布时间:2023/12/18 浏览次数:89 分类:Python
-
本教程演示了如何在 Python 中查找列表中某个元素的所有出现位置的索引在 Python 中,列表用于在一个名称下存储多个元素。每个元素可以通过它在列表中的位置来访问。
Python 中把一个文本文件读成一个列表
发布时间:2023/12/18 浏览次数:61 分类:Python
-
本教程演示了如何将文本文件读取到 python 列表中。本教程将研究多种方法来加载或读取文本文件到 Python 列表中。
Python 中按字母顺序对列表进行排序
发布时间:2023/12/18 浏览次数:87 分类:Python
-
本教程演示了如何在 Python 中按字母顺序对一个列表进行排序。在本教程中,我们将讨论如何使用 sort() 和 sorted() 函数对包含字符串的列表按字母顺序排序,并使用快速排序算法。
在Python中获取列表形状
发布时间:2023/12/18 浏览次数:133 分类:Python
-
本文探讨了在Python中确定列表形状的方法,涵盖了一维、嵌套和多维列表,以及处理不规则嵌套列表。在Python中,了解列表的形状对于处理数据结构非常重要,特别是涉及多维或嵌套列表的情况
在 Python 中追加元素到到列表的前面
发布时间:2023/12/18 浏览次数:196 分类:Python
-
它演示了如何在 Python 中把元素追加到列表的前面。在整个教程中,我们将使用一个整数列表作为例子,以关注列表插入,而不是插入各种数据类型