- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pandas重复数据处理⼤全 (附代码)
本次来介绍重复值处理的常⽤⽅法。
重复值处理主要涉及两个 分,⼀个是找出重复值,第⼆个是删除重复值,也就是根据 ⾃⼰设定的条件进⾏删除操作。
定定位位重重复复值值
对于重复值,我们⾸先需要查看这些重复值是什么样的形式,然后确定删除的范围,⽽查询重复值需要⽤到duplicated函数。
duplicated的返回值是布尔值,返回True和False,默认情况下会按照⼀⾏的所有内容进⾏查重。
主要参数 :
subset :如果不按照全 内容查重,那么需要指定按照哪些列进⾏查重。⽐如按照姓名进⾏查重subset=[name],那么具有相同名字的
⼈就只会保留⼀个,但很可能只是重名的原因,⽽并⾮真正同⼀个⼈,所以可以按照姓名和出⽣ ⽇期两列查重,subset=
[name,birthday],同理还可以再添加列,这样就可以基本保证去重效果了。
keep :⽤来确定要标记的重复值,可以设置为first、last、False。
first :除第⼀次出现的重复值,其他都标记为True
last :除最后⼀次出现的重复值,其他都标记为True
False :所有重复值都标记为True
实例 :
import pandas as pd
import numpy as np
data = {
user : [zszxz,zszxz,rose],
price : [ 00, 200, -300],
hobby : [reading,reading,hiking]
}
frame = pd.DataFrame(data)
print(frame)
user price hobby
0 zszxz 00 reading
zszxz 200 reading
2 rose -300 hiking
frame.duplicated()
0 False
False
2 False
dtype: bool
上⾯提到duplicated返回布尔值,所以如果要想输出这些重复值,还需要和查询的⽅法配合使⽤df[df.duplicated()],⽐如 :
# 、按user变量筛选重复值
frame[frame.duplicated(subset=[user])]
user price hobby
zszxz 200 reading
上⾯按user⼀个变量进⾏查重,但没有设置keep参数,所以默认筛选出除了第⼀个以外的其它重复值。
# 2、按user变量筛选重复值,保留全 重复值
frame[frame.duplicated(subset=[user], keep=False)]
user price hobby
0 zszxz 00 reading
zszxz 200 reading
上⾯按user⼀个变量进⾏查重,并设置keep参数为False,所以保留了全 的重复值。
# 3、按user和hobby变量筛选重复值,筛选出除最后⼀个重复值以外的其它重复值
frame[frame.duplicated(subset=[user,hobby], keep=last)]
user price hobby
0 zszxz 00 reading
上⾯按user和hobby两个变量进⾏查重,并设置keep参数为last,所以筛选出了除最后⼀个重复值以外的其它重复值。
通过两个参数的设置就可以查看 ⾃⼰想要的重复值了,以此判断要删除哪个,保留哪个。
删删 除除重重复复值值
当确定好需要删除的重复值后,就进⾏进⾏删除的操作了。
删除重复值会⽤到drop_duplicates函数。
和duplicated()函数参数类似,主要有3个参数 :
subset :同duplicated(),设置去
文档评论(0)