2021-04-07 python数据处理系统学习(二十三)重复值处理、缺失值处理

本文介绍了Python数据处理中如何处理重复值和缺失值。包括使用pandas库判断是否存在重复值、选择重复值、计算重复个数及剔除重复值的方法。在处理缺失值方面,讲解了检查缺失值、计算缺失值个数、运用apply函数计算缺失值占比、删除缺失值以及多种填补缺失值的策略,如平均值、众数、指定值、不同数据不同方式、前项、后项填补和插值法。
摘要由CSDN通过智能技术生成

2021-04-07 python数据处理系统学习(二十三)重复值处理、缺失值处理

导入数据:

import pandas as pd
import numpy as np
import os
os.chdir(r'C:\Users\wangyu\Desktop\毕业论文')

data=pd.read_excel('附件1:123家有信贷记录企业的相关数据.xlsx',sheet_name=1,header=0,dtype={
   '销方单位代号':str,'发票号码':str})
data2=pd.read_excel('最终data.xlsx',sheet_name=0,header=0)

1、重复值处理

1.1 判断是否有重复值

如果没有重复值:

data.duplicated()
Out[3]: 
0         False
1         False
2         False
3         False
4         False
 
210942    False
210943    False
210944    False
210945    False
210946    False
Length: 210947, dtype: bool

如果有重复值:

data1=data.append(data.head(5))
data1.duplicated()
Out[9]: 
0    False
1    False
2    False
3    False
4    False
 
0     True
1     True
2     True
3     True
4     True
Length: 210952, dtype: bool

也可以根据其中几个变量进行重复值的搜索:

data.duplicated(subset=['销方单位代号','价税合计'])
Out[11]: 
0         False
1         False
2         False
3         False
4         False
 
210942     True
210943     True
210944     True
210945     True
210946     True
Length: 210947, dtype: bool

1.2 选择重复值

用keep=‘first’保留第一个,表示第一个值当成第一出现的值,记为True,后来重复出现的记为False,keep=‘last’表示保留后一个,即后一个记为True,其余的记为False,如下:

data1.duplicated(subset=['销方单位代号','价税合计'],keep='first')
Out[12]: 
0    False
1    False
2    False
3    False
4    False
 
0     True
1     True
2     True
3     True
4     True
Length: 210952, dtype: bool

data1.duplicated(subset=['销方单位代号','价税合计'],keep='last')
Out[13]: 
0     True
1     True
2     True
3     True
4     True
 
0    False
1    False
2    False
3    False
4    False
Length: 210952, dtype: bool

1.3 计算重复的个数

np.sum(data1.duplicated(subset=['销方单位代号','价税合计'],keep='last'))
Out[14]: 93671

np.sum(data1.duplicated())
Out[15]: 808

1.4 剔除重复值

data1.drop_duplicates()
Out[16]: 
        企业代号      发票号码       开票日期  销方单位代号       金额      税额     价税合计  发票状态
0         E1   3390939 2017-07-18  A00297  -943.40  -56.60 -1000.00  有效发票
1         E1   3390940 2017-07-18  A00297 -4780.24 -286.81 -5067.05  有效发票
2         E1   3390941 2017-07-18  A00297   943.40   56.60  1000.00  有效发票
3         E1   3390942 2017-07-18  A00297  4780.24  286.81  5067.05  有效发票
4         E1   9902669 2017-08-07  A05061   326.21    9.79   336.00  有效发票
     ...       ...        ...     ...      ...     ...      ...   ...
210942  E122  54706234 2019-04-17  A08967   223.30    6.70   230.00  有效发票
210943  E122  55721344 2020-01-10  A09184   264.15   15.85   280.00  有效发票
210944  E123  38493295 2017-12-15  A03624   264.15   15.85   280.00  有效发票
210945  E123  95472001 2018-12-29  A03626   264.15   15.85   280.00  有效发票
210946  E123  54469883 2019
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值