异常值处理、重复值处理

异常值处理

有关异常值的确定有很多种规则和方法,这里使用Z标准化得到的阈值作为判断标准:当标准化后的得分超过阈值则为异常。完整代码如下:

注:代码用 jupyter notebook跑的,分割线线上为代码,分割线下为运行结果

import pandas as pd
#生成异常数据
df=pd.DataFrame({'col1':[1,120,3,5,2,12,13],
                 'col2':[12,17,31,53,22,32,43]})
       #       col1  col2
       #   0     1    12
       #   1   120    17
       #   2     3    31
       #   3     5    53
       #   4     2    22
       #   5    12    32
       #   6    13    43

#通过z-score方法判断异常值
df_zscore=df.copy()#复制一个用来存储z-score得分的数据框
cols=df.columns #获得数据框的列名
for col in cols:
    df_col=df[col] #得到每列的值
    z_score=(df_col-df_col.mean())/df_col.std() #计算每列的z-score得分
    df_zscore[col]=z_score.abs()>2.2  #判断z-score得分是否大于2.2,如果是则为True,否则为False
print(df_zscore)

------------------------------------------------------------------------------------------
    col1   col2
0  False  False
1   True  False
2  False  False
3  False  False
4  False  False
5  False  False
6  False  False

阈值的设定是确定异常与否的关键,通常当阈值大于2时,已经是相对异常的表现值。

重复值处理 

有关重复值的处理代码示例如下:

import pandas as pd
#生成重复数据
data1=['a',3]
data2=['b',2]
data3=['a',3]
data4=['c',2]
df=pd.DataFrame([data1,data2,data3,data4],columns=['col1','col2'])
#判断重复数据
isDuplicated=df.duplicated() #判断重复数据记录
print(isDuplicated)

--------------------------------------------------------------------------------

0    False
1    False
2     True
3    False
dtype: bool
#删除重复值
new_df1=df.drop_duplicates() #删除数据记录纸所有列值相同的记录
new_df2=df.drop_duplicates(['col1']) #删除数据记录中col1值相同的记录
new_df3=df.drop_duplicates(['col2']) #删除数据记录中col2值相同的记录
new_df4=df.drop_duplicates(['col1','col2']) #删除数据记录中指定列(col1/col2)值相同的记录

print(new_df1)
print(new_df2)
print(new_df3)
print(new_df4)

-----------------------------------------------------------------------------------
  col1  col2
0    a     3
1    b     2
3    c     2

  col1  col2
0    a     3
1    b     2
3    c     2

  col1  col2
0    a     3
1    b     2

  col1  col2
0    a     3
1    b     2
3    c     2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值