pandas缺失值

pandas缺失值


1、选择缺失值的方法:掩码和标签值

掩码是一个与原数组维度相同的完整布尔类型数组/或者用用一个比特(0/1)表示有缺失值的局部状态

标签值可能是具体的数值,也可能是一些极少出现的形式。还可能是一个更全局的值,比如NaN(不是一个数)表示缺失的浮点数


2、pandas的缺失值

pandas中的缺失值是浮点数据类型的 NaN 值,和python的None对象


3、None:python中的None对象

None是一个单体对象,经常在代码中表示缺失值。

由于None是一个python对象,所以不能作为任何NumPy/Pandas数据类型的缺失值,只能用于‘object’数据类型(由python对象构成的数组)

这种数据类型任何操作都会在python层面进行,所以会比原生的数据类型要消耗更多的资源

如果对数组进行累计操作,比如sum、min,通常都会报错,因为python中没有定义None和整数之间的加法运算


4、NaN:数据类型的缺失值

另一种缺失值的标签是NaN(全称Not a Number,不是一个数字)

只具有NaN的数组,其类型为原生浮点类型,这与前面的None的数据类型不同。

可以将NaN看做一个病毒,任何值与NaN做运算时,结果都为NaN

数组中有忽略缺失值的计算:np.nansum() , np.nanmax(), np.nanmin()

谨记:NaN是一种特殊的浮点数,不是整数、字符串或者其他数据类型。


5、NaN和None的差异

在pandas中,他们两是等价交换的,在适当的时候,会将两者进行替换。

pandas会将没有标签值的数据类型自动转换为NA。例如,一个整数类型的数组中的一个值设置为np.nan时,该数组会自动转换为浮点型,这个值也会变为浮点型数值。




pandas处理缺失值


    data = pd.Series([1,2,np.nan,None])
    1、发现缺失值:
        isnull()/isna()    # 缺失值为True,不是缺失值为False,返回一个掩码
            例:data.isnull()
             或 pd.isnull(data)
        
        notnull()/notna()  # 不是缺失值为True,缺失值为False,返回一个掩码
            例:data.notnull()
             或 pd.notnull(data)
    
    
    2、剔除缺失值:dropna(axis=0/1,       # 按行删除/按列删除
                        how='any'/'all' # any:只要有一个缺失值就删除;all:该行/列所有都是缺失值,才删除
                        thresh=3(可以比较的数)       # 行/列至少有3个有效值的就保留,其余删除
                        )
        data.dropna()返回一个删除过后的数据,原数据没变。
    
    
    3、填充缺失值:fillna(method='ffill'/'bfill',  # ffill向前填充。bfill向后填充。
                        axis=0/1                # 按行/列进行填充
                        )
            data.fillna(0)  # 填充0
            data.fillna(method='ffill')  # 按列,向前进行填充
            data.fillna(method='bfill',axis=1) # 按照行,向后进行填充
            data.fillna(data.mean())  # 填充平均值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力生活的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值