大数据基础-数据重复值和缺失值处理

重复值处理


""""
 在数据分析中,存在大量不完整、不一致、有异常的数据,严重影响到数据分析结果
 数据清洗就是处理缺失数据及清除无意义的信息,如删除原始数据集中的无关数据,重复数据,
 平滑噪声数据,筛选掉与分析主题无关的数据,处理缺失值,异常值
"""
"""
1.重复值的处理
1.1 利用DataFrame中的duplicated方法返回布尔类型的Series,显示是否有重复行,如果没有重复行的话显示false,
有重复行的话,再第二个重复的值显示true
1.2再用DataFrame中的drop_duplicates方法返回一个移除了重复行的DataFrame
duplicated的方法为:
        duplicated(self,subset=None,keep=frist)
    subset用于识别重复的列标签或列序列,默认所有的列标签
    kepp中的'frist'表示除了第一次出现的重复值为,其他出现的重复值标记为重复
    kepp中的'last'表示除了最后一次出现的重复值为,其他出现的重复值标记为重复
    kepp中的'False'表示所有相同的数据都被标记为重复值
    
"""
from pandas import DataFrame
from pandas import Series
df=DataFrame({'age':Series([26,85,64,85,85]),'name':Series(['Ben','John','Jerry','John','John'])})
print(df)
print('---------------------------')
#duplicated查询是否有重复列
print(df.duplicated());
#去除重复列
df=df.drop_duplicates();
print(df);


在这里插入图片描述

缺失值处理

'''
缺失值处理:
   缺失的数据可能会产生有偏估计,从而样本不能很好的代表总体
   如何识别缺失值:
    pandas中提供了两个方法isnull 和notnull来识别是否为空和不为空

'''
from pandas import Series
from pandas import DataFrame
from pandas import read_excel
data=read_excel(r'rz.xlsx',sheet_name='Sheet2');
print(data.head());
#调用方法来检查是否有缺失值
print('---------------------------')
print(data.notnull());
print('---------------------------')
print(data.isnull());
print('---------------------------')
'''
对于缺失的值我们处理的方式有:
    数据补齐、删除对应的行,不处理的操作
'''

'''

一、删除对应的行,使用dropna()的方法
'''
new_data=data.dropna()#将缺失值得行删除
print(new_data)
print('------------------')
print(new_data.isnull())
'''
二、使用其他值来代替缺失值
    代替的格式为:df.fillna('其他值'),其中代替的方式有几种:
    1.代替任意值,df.fillna('?')
    2.用前一个数据代替缺失值 df,fillna(method='pad')
    3.用最后一个数据代替缺失值 df,fillna(method='bfill')
    4.用均值代替缺失值 df.fillna(df.mean()),这个是用当前列的均值来代替缺失值
            也可以使用其他列的举止来代替本列的缺失值df.fillna(df.mean()['缺失值列','使用其他列填充的列名'])
    5.使用字典随不同的列进行不同的填充
            df.fillna({'列名1':'值1','列名2':'值2'...............})
'''
new1=data.fillna('hello world');
print(new1)
print('--------------------------')
new2=data.fillna(method='pad');
print(new2)
print('--------------------------')
new3=data.fillna(method='bfill');
print(new3)
print('---------------------------')
new4=data.fillna(data.mean())
print(new4);
print('---------------------------')
new5=data.fillna(data.mean()['数分':'解几']);
print(new5)
print('---------------------------')
new6=data.fillna({'英语':100,'高代':'hello world'});
print(new6)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值