在 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']
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串