Pandas 中缺失值NaN的判断, 删除 及 替换

本文详细介绍了如何使用Pandas处理CSV文件中的缺失值(NaN),包括检查缺失值、删除含有缺失值的行列、用通用值或特定值填充缺失值,以及利用平均值、中位数等进行替换。掌握这些技巧有助于提升数据清洗的效率。

当使用pandas读取csv文件时,如果元素为空,则将其视为缺失值NaN(Not a Number, 非数字)。

使用dropna()方法删除缺失值,使用fillna()方法用其他值替换(填充)缺失值。

如果要提取包含缺失值的行或列,使用isnull()方法确定元素是否缺失。

1. 检查缺失值NaN

例如,读取并使用包含带read_csv的空格的csv文件。

import pandas as pd
import numpy as np
import math

df = pd.read_csv('./data/05/sample_pandas_normal_nan.csv')
print(df)
#       name   age state  point  other
# 0    Alice  24.0    NY    NaN    NaN
# 1      NaN   NaN   NaN    NaN    NaN
# 2  Charlie   NaN    CA    NaN    NaN
# 3     Dave  68.0    TX   70.0    NaN
# 4    Ellen   NaN    CA   88.0    NaN
# 5    Frank  30.0   NaN    NaN    NaN

使用pandas.isnull() 检查所有缺失的值:

print(df.isnull())
# 或者 
print(pd.isnull(df))
#     name    age  state  point  other
# 0  False  False  False   True   True
# 1   True   True   True   True   True
# 2  False   True  False   True   True
# 3  False  False  False  False   True
# 4  False   True  False  False   True
# 5  False  False   True   True   True

检查 ‘name’ 列缺失的值:

print(df['name'].isnull())
# 0    False
# 1     True
# 2    False
# 3    False
# 4    False
# 5    False
Name: name, dtype: bool

也可以使用numpy.isnan() 和math.isnan() (但是需要分别导入NumPy和math):

print(pd.isnull(df.at[0, 'point']))
print(np.isnan(df.at[0, 'point']))
print(math.isnan(df.at[0, 'point']))
# True
# True
# True
2. Pandas中NaN的类型

在Pandas中,将None,np.nan,math.nan和pd.np.nan视为缺失值NaN

s_nan = pd.Series([None, np.nan, math.nan, pd.np.nan])
print(s_nan)
# 0   NaN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值