数据缺失值处理

对于有缺失的数据通常有2种方法

        dropna()函数:丢弃(删除)缺失的数据

        fillna()函数:对缺失数据进行填补

dropn()函数语法如下:

df.dropna(axis = 0,how = 'any',inplace = False)

        df:DataFrame数据对象

        axis:值为 0 删除包含删除值的行,值为 1 删除包含删除值的列

        how:值为 'any' 表示存在缺失值就删除该行或该列,值为 ‘all’ 表示该行或该列均为缺失值时才删除该行或该列

        inplace:默认为False,值为True在原数据上执行删除操作并返回None

dropna()使用方法;

import pandas as pd
df = pd.DataFrame({'lenget':[5.0,np.nan,4.9,np.nan],'lenget1':[4.8,np.nan,np.nan,np.nan],'lenget2':[np.nan,np.nan,np.nan,np.nan]})
print('原数据:\n',df)
print('删除有缺失数据的行:\n',df.dropna())
print('删除全部为缺失数据的行:\n',df.dropna(how = 'all'))
print('删除全部为缺失数据的列:\n',df.dropna(axis = 1,how = 'all'))

运行结果:

原数据:
    lenget  lenget1  lenget2
0     5.0      4.8      NaN
1     NaN      NaN      NaN
2     4.9      NaN      NaN
3     NaN      NaN      NaN
删除有缺失数据的行:#所有行都有缺失值,所以返回结果为空的DataFrame
 Empty DataFrame
Columns: [lenget, lenget1, lenget2]
Index: []
删除全部为缺失数据的行:
    lenget  lenget1  lenget2
0     5.0      4.8      NaN
2     4.9      NaN      NaN
删除全部为缺失数据的列:
    lenget  lenget1
0     5.0      4.8
1     NaN      NaN
2     4.9      NaN
3     NaN      NaN

fillna()函数语法如下:

df.DataFrame(value = None,method = None,axis = None,inplace = False,limis = None)

        df:DataFrame数据对象

        value:用于填充缺失值的值

        method:填充方向,值为['backfill','bfil','pad','ffill',None]。['backfill','bfil']:表示向后填充,['pad','ffill']:表示向前填充

        axis:值为 0 删除包含删除值的行,值为 1 删除包含删除值的列

        inplace:默认为False,值为True在原数据上执行删除操作并返回None

        limis:值为整数,如果指定了method,表示连续缺失值向前或向后填充的最多的次数

fillna()使用方法;

import pandas as pd
df = pd.DataFrame({'lenget':[5.0,np.nan,4.9,np.nan],'lenget1':[4.8,np.nan,np.nan,np.nan],'lenget2':['test','test','test','test'],'lenget3':[np.nan,np.nan,np.nan,np.nan]})
print('原数据:\n',df)
print('填补缺失值:\n',df.fillna('缺失值'))
print('向前填充:\n',df.fillna(method = 'ffill'))
print('向后填充:\n',df.fillna(method = 'backfill'))

运行结果:

原数据:
    lenget  lenget1 lenget2  lenget3
0     5.0      4.8    test      NaN
1     NaN      NaN    test      NaN
2     4.9      NaN    test      NaN
3     NaN      NaN    test      NaN
填补缺失值:
   lenget lenget1 lenget2 lenget3
0    5.0     4.8    test     缺失值
1    缺失值     缺失值    test     缺失值
2    4.9     缺失值    test     缺失值
3    缺失值     缺失值    test     缺失值
向前填充:
    lenget  lenget1 lenget2  lenget3
0     5.0      4.8    test      NaN
1     5.0      4.8    test      NaN
2     4.9      4.8    test      NaN
3     4.9      4.8    test      NaN
向后填充:
    lenget  lenget1 lenget2  lenget3
0     5.0      4.8    test      NaN
1     4.9      NaN    test      NaN
2     4.9      NaN    test      NaN
3     NaN      NaN    test      NaN #向下没有数据,所以没有填充

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值