Python异常值处理(学习记录)

生成缺失值

import pandas as pd
import numpy as np
#from sklearn.preprocessing import Imputer
from sklearn.impute import SimpleImputer
df = pd.DataFrame(np.random.randn(6,4) , columns = ['col1','col2','col3','col4'])
df.iloc[1:2,1] = np.nan
df.iloc[4,3] = np.nan
#loc [ raw , col ]:第一个参数raw表示行选,行选只能是整数;后面的参数表示列选,列选只能是索引名称,比如姓名、年龄之类的
#iloc [ raw , col ]:第一个参数raw表示行选,第二个参数表示列选,都必须是整数
print(df)

判断缺失值

nan_all = df.isnull()
print(nan_all)
nan_col1 = df.isnull().any()
nan_col2 = df.isnull().all()
print(nan_col1)
print(nan_col2)

丢弃异常值

df2 = df.dropna()
print(df2)

sklearn处理

#nan_model = Imputer(missing_values = 'NaN' , strategy = 'mean' , axis = 0)
nan_model = SimpleImputer(missing_values =np.nan , strategy = 'mean' )
nan_result = nan_model.fit_transform(df)
print(nan_result)

pandas处理

nan_result_pd1 = df.fillna(method = 'backfill') #后面值代替
nan_result_pd2 = df.fillna(method = 'bfill',limit = 1) #限制每列只有一个
nan_result_pd3 = df.fillna(method = 'pad') #前面值代替
nan_result_pd4 = df.fillna(0) #用0代替
nan_result_pd5 = df.fillna({'col2':1.1,'col4':1.2})
nan_result_pd6 = df.fillna(df.mean()['col2':'col4'])#各自列的均值
print(nan_result_pd1)
print(nan_result_pd2)
print(nan_result_pd3)
print(nan_result_pd4)
print(nan_result_pd5)
print(nan_result_pd6)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值