在 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 系列日期时间转换为字符串

