Python 剔除 NaN

NaN(Not a Number)是指在数据中存在缺失或无效的值。在数据分析和处理中,我们经常需要剔除这些 NaN 值,以保证数据的准确性和完整性。Python 提供了多种方法来处理 NaN 值,本文将介绍如何使用 Python 剔除 NaN。

使用 pandas 处理 NaN

在数据处理领域,pandas 是一个非常常用的 Python 库。它提供了丰富的数据结构和数据分析工具,可以方便地处理 NaN 值。下面是一个使用 pandas 处理 NaN 的简单示例代码:

import pandas as pd

# 创建一个包含 NaN 值的 DataFrame
data = {'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, 7, 8]}
df = pd.DataFrame(data)

# 剔除包含 NaN 值的行
df_clean = df.dropna()

print(df_clean)

输出结果为:

     A    B
0  1.0  5.0

在上述示例中,首先创建了一个包含 NaN 值的 DataFrame。然后使用 dropna() 函数剔除包含 NaN 值的行。最后打印出剔除 NaN 后的 DataFrame。

使用 NumPy 处理 NaN

NumPy 是 Python 中另一个常用的数值计算库。它提供了丰富的数学函数和数组操作方法,可以方便地处理 NaN 值。下面是一个使用 NumPy 处理 NaN 的简单示例代码:

import numpy as np

# 创建一个包含 NaN 值的数组
arr = np.array([1, np.nan, 3, 4])

# 剔除 NaN 值
arr_clean = arr[~np.isnan(arr)]

print(arr_clean)

输出结果为:

[1. 3. 4.]

在上述示例中,首先创建了一个包含 NaN 值的数组。然后使用 np.isnan() 函数找出 NaN 值所在的位置,并使用取反运算符 ~ 来排除这些位置,从而得到剔除 NaN 后的数组。

使用 fillna 填充 NaN

除了剔除 NaN,有时候我们也可以选择填充 NaN,以保留原有数据的完整性。pandas 提供了 fillna() 函数用于填充 NaN 值。下面是一个使用 fillna() 填充 NaN 的简单示例代码:

import pandas as pd

# 创建一个包含 NaN 值的 DataFrame
data = {'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, 7, 8]}
df = pd.DataFrame(data)

# 使用 0 填充 NaN 值
df_fill = df.fillna(0)

print(df_fill)

输出结果为:

     A    B
0  1.0  5.0
1  2.0  0.0
2  0.0  7.0
3  4.0  8.0

在上述示例中,首先创建了一个包含 NaN 值的 DataFrame。然后使用 fillna() 函数将 NaN 值填充为指定的值,这里填充为 0。最后打印出填充 NaN 后的 DataFrame。

总结

本文介绍了如何使用 Python 剔除 NaN 值。通过使用 pandas 的 dropna() 函数和 NumPy 的 np.isnan() 函数,我们可以轻松地剔除包含 NaN 值的行或数组元素。此外,我们还介绍了如何使用 pandas 的 fillna() 函数填充 NaN 值,以保留原有数据的完整性。掌握这些方法可以帮助我们更好地处理数据中的 NaN 值,提高数据分析和处理的准确性。


gantt
dateFormat  YYYY-MM-DD
title Python 剔除 NaN

section 数据准备
准备数据    :done, 2022-10-01, 1d

section 使用 pandas 处理 NaN
使用 dropna()   :done, 2022-10-02, 1d

section 使用 NumPy 处理 NaN
使用 np.isnan()   :