数据转换—删除重复数据

DataFrame中会出现重复行:
1、DataFrame的 duplicated方法返回一个布尔型Series,表示各行是否是重复行
2、 drop_duplicates方法,用于返回一个移除了重复行的DataFrame
data=DataFrame({'k1':['one']*3+['two']*4,
'k2':[1,1,2,3,3,4,4]})

data
Out[5]: 
    k1  k2
0  one   1
1  one   1
2  one   2
3  two   3
4  two   3
5  two   4
6  two   4

#使用duplicated方法
data.duplicated()
Out[6]: 
0    False
1     True
2    False
3    False
4     True
5    False
6     True
dtype: bool

#使用drop_duplicates方法
data.drop_duplicates()
Out[7]: 
    k1  k2
0  one   1
2  one   2
3  two   3
5  two   4

两个方法都默认判断全部列,但是也可以指定列进行重复项判断。

data['v1']=range(7)

data
Out[9]: 
    k1  k2  v1
0  one   1   0
1  one   1   1
2  one   2   2
3  two   3   3
4  two   3   4
5  two   4   5
6  two   4   6

#指定列进行判断
data.drop_duplicates(['k1'])
Out[10]: 
    k1  k2  v1
0  one   1   0
3  two   3   3

两个方法默认保留第一个出现的值组合。传入keep='last'保留最后一个:

data.drop_duplicates(['k1','k2'],keep='last')
Out[14]: 
    k1  k2  v1
1  one   1   1
2  one   2   2
4  two   3   4
6  two   4   6

#keep参数有三个取值:"first","last",False
#其中"first"是默认的,False表示去除所有的重复行
#参数inplace=True表示直接在原来的DataFrame上去处重复项,False表示生成一个副本
data.drop_duplicates(['k1','k2'],keep='last',inplace=True)

data
Out[19]: 
    k1  k2  v1
1  one   1   1
2  one   2   2
4  two   3   4
6  two   4   6

 

 

转载于:https://www.cnblogs.com/dataAnalysis/p/9353258.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值