Jupyter 缺失值处理

import os
import pandas as pd
import numpy as np
os.chdir(‘D:\Workspaces\Jupyter’)
df = pd.read_excel(‘data_test.xlsx’)

每一列所有的缺失值数目和

np.sum(df.isnull())

返回值是TRUE的缺失

df.isnull()

每一列缺失数目

np.sum(df.isnull(),axis = 0)

每一行缺失数目

np.sum(df.isnull(),axis = 1)

每一列的缺失率

df.apply(lambda x:sum(x.isnull())/len(x),axis=0)

每一行的缺失率

df.apply(lambda x:sum(x.isnull())/len(x),axis=1)

只要有缺失,就删除,按行

df.dropna()

第二种表达

df.dropna(how = ‘any’,axis=0)

按列删除

df.dropna(how = ‘any’,axis=1)

这一列全缺失才删除

df.dropna(how = ‘all’,axis=1)

删除某一列

df.drop(‘TeamID’,axis=1)

删除多列

df.drop([‘TeamID’,‘EventTime’],axis=1)

按行删除这两列有缺失的数据

df.dropna(subset = [‘EventTime’,‘EventOrigin_x’],how =‘any’)

填上平均值,两点之间是列名

df.EventOrigin_x.fillna(df.EventOrigin_x.mean())

填上中位数

df.EventOrigin_x.fillna(df.EventOrigin_x.median())

填上众数,可以用来填不是数值的缺失,比如性别

df.EventOrigin_x.fillna(df.EventOrigin_x.mode())

这一列有多个众数取第一个

df.EventOrigin_x.fillna(df.EventOrigin_x.mode()[0])

所有的缺失值都用20填补

df.fillna(20)

不同的列补充不一样的内容

df.fillna(value ={‘EventType’:df.EventType.mode()[0],
‘EventTime’:df.EventTime.mean()})

从上往下,每次填补都和前一项相同

df.fillna(method=‘ffill’)

从下至上,每一项都和下一项相同

df.fillna(method=‘bfill’)

线性插值法

df.EventTime.interpolate(method = ‘linear’)

二次多项式插值

df.EventTime.interpolate(method = ‘polynomial’,order = 2)

!!!重要的是这些都是返回视图,真实数据没有改变,需要加上df = df.啥啥啥的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值