📅  最后修改于: 2023-12-03 15:17:49.942000             🧑  作者: Mango
在 Pandas 中,“NaN”(即 “Not a Number”)是指缺失或无效的数值数据。
在 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
可以使用 dropna() 函数来删除包含 NaN 值的行或列。
如果想要删除行,可以设置 axis=0。
如果想要删除列,可以设置 axis=1。
# 删除包含 NaN 值的行
print(df.dropna())
# 删除包含 NaN 值的列
print(df.dropna(axis=1))
输出结果:
A B
0 1.0 3.0
可以使用 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
在处理缺失数据时,要根据业务逻辑选择适当的方法,以确保不会破坏原始数据。