删除数据中缺失值比例>=p的列

需求背景

处理特征的时候经常会drop掉很多缺失率较大的值,比较少的时候就点名删除就好了。
但是这次遇到三百多个特征,点名点到猴年马月,一个个搞太麻烦,懒惰是人类进步的阶梯,于是封装了一个函数,后续也可以复用了

代码如下

def drop_null(data,percent):
'''
data:数据
percent:缺失比例达到多少需要剔除
'''
    
      null_val_sums = data.isnull().sum() #统计每个列有多少缺失值

      per_null = list(null_val_sums.values / len(df_data))  #计算缺失率

      no_null_name = []

      feature_name = list(null_val_sums.index)

      for i in range(len(per_null)):

          if per_null[i] < percent:

              no_null_name.append(i)

      newList = []

      for index in no_null_name:

          newList.append(feature_name[index])

      for aVal in newList:

          feature_name.remove(aVal)

      data_drop = data.drop(feature_name,axis=1)

      return data_drop
    
df_data = drop_null(df_data,0.1)

使用需要填入数据,和缺失比例即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱挠静香的下巴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值