📜  nan 的 pandas 测试 - Python (1)

📅  最后修改于: 2023-12-03 15:17:49.942000             🧑  作者: Mango

"NaN" 的 Pandas 测试 - Python

在 Pandas 中,“NaN”(即 “Not a Number”)是指缺失或无效的数值数据。

检测 NaN 值

在 Pandas 中,可以通过 isnull()或 notnull()函数检测数据是否为 NaN / 缺失值。这两个函数返回布尔值,True 表示值是 NaN,False 表示值不是 NaN。

import pandas as pd
import numpy as np

# 创建 DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan],
                   'B': [3, np.nan, 5]})

# 检查 DataFrame 中是否包含 NaN 值
print(df.isnull())

# 检查 DataFrame 中是否不包含 NaN 值
print(df.notnull())

输出结果:

       A      B
0  False  False
1  False   True
2   True  False

      A     B
0  True  True
1  True  True
2  False  True
处理 NaN 值
删除 NaN 值

可以使用 dropna() 函数来删除包含 NaN 值的行或列。

如果想要删除行,可以设置 axis=0。

如果想要删除列,可以设置 axis=1。

# 删除包含 NaN 值的行
print(df.dropna())

# 删除包含 NaN 值的列
print(df.dropna(axis=1))

输出结果:

     A    B
0  1.0  3.0
替换 NaN 值

可以使用 fillna() 函数来替换数据中的 NaN 值。

# 将 NaN 值替换为 0
print(df.fillna(0))

# 将 NaN 值替换为每列的平均值
print(df.fillna(df.mean()))

输出结果:

     A    B
0  1.0  3.0
1  2.0  0.0
2  0.0  5.0

     A    B
0  1.0  3.0
1  2.0  4.0
2  1.5  5.0

在处理缺失数据时,要根据业务逻辑选择适当的方法,以确保不会破坏原始数据。