异常数据处理

这篇博客探讨了异常值处理的四种常见方法:删除记录、视为缺失值处理、用平均值修正以及不处理,并指出处理异常值应结合实际场景。文章中还介绍了Pandas的replace函数,用于替换数据,提供了具体的语法和示例,如使用dropna函数删除包含缺失值的行。
部署运行你感兴趣的模型镜像

常用处理方法:

异常值的处理方法常用有四种

1.删除含有异常值的记录

2.将异常值视为缺失值,交给缺失值处理方法来处理

3.用平均值来修正

4.不处理

需要强调的是,如何判定和处理异常值,需要结合实际

 

# 异常数据处理(异常数据过滤)
new_df = df.replace('?', np.nan)#替换非法字符为np.nan
datas = new_df.dropna(axis=0,how = 'any') # 只要有一个数据为空,就进行行删除操作
datas.describe().T#观察数据的多种统计指标

关于replace函数

语法:replace(self, to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)

使用方法如下:

1

2

3

4

import numpy as np

import pandas as pd

df = pd.read_csv('emp.csv')

df

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#Series对象值替换

s = df.iloc[2]#获取行索引为2数据

#单值替换

s.replace('?',np.nan)#用np.nan替换?

s.replace({'?':'NA'})#用NA替换?

#多值替换

s.replace(['?',r'$'],[np.nan,'NA'])#列表值替换

s.replace({'?':np.nan,'$':'NA'})#字典映射

#同缺失值填充方法类似

s.replace(['?','$'],method='pad')#向前填充

s.replace(['?','$'],method='ffill')#向前填充

s.replace(['?','$'],method='bfill')#向后填充

#limit参数控制填充次数

s.replace(['?','$'],method='bfill',limit=1)

#DataFrame对象值替换

#单值替换

df.replace('?',np.nan)#用np.nan替换?

df.replace({'?':'NA'})#用NA替换?

#按列指定单值替换

df.replace({'EMPNO':'?'},np.nan)#用np.nan替换EMPNO列中?

df.replace({'EMPNO':'?','ENAME':'.'},np.nan)#用np.nan替换EMPNO列中?和ENAME中.

#多值替换

df.replace(['?','.','$'],[np.nan,'NA','None'])##用np.nan替换?用NA替换. 用None替换$

df.replace({'?':'NA','$':None})#用NA替换? 用None替换$

df.replace({'?','$'},{'NA',None})#用NA替换? 用None替换$

#正则替换

df.replace(r'\?|\.|\$',np.nan,regex=True)#用np.nan替换?或.或$原字符

df.replace([r'\?',r'\$'],np.nan,regex=True)#用np.nan替换?和$

df.replace([r'\?',r'\$'],[np.nan,'NA'],regex=True)#用np.nan替换?用NA替换$符号

df.replace(regex={r'\?':None})

#value参数显示传递

df.replace(regex=[r'\?|\.|\$'],value=np.nan)#用np.nan替换?或.或$原字符

删除缺失数据
df.dropna(axis=0, how='any')
#any表示删除包含任何NaN值的给定轴,how=all会删除所有元素都是NaN的给定轴

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值