Pandas标记删除重复记录的方法


Posted in Python onApril 08, 2018

Pandas提供了duplicated、Index.duplicated、drop_duplicates函数来标记及删除重复记录

duplicated函数用于标记Series中的值、DataFrame中的记录行是否是重复,重复为True,不重复为False

pandas.DataFrame.duplicated(self, subset=None, keep='first')

pandas.Series.duplicated(self, keep='first')

其中参数解释如下:

subset:用于识别重复的列标签或列标签序列,默认所有列标签

keep=‘frist':除了第一次出现外,其余相同的被标记为重复

keep='last':除了最后一次出现外,其余相同的被标记为重复

keep=False:所有相同的都被标记为重复

import numpy as np
import pandas as pd 
#标记DataFrame重复例子
df = pd.DataFrame({'col1': ['one', 'one', 'two', 'two', 'two', 'three', 'four'], 'col2': [1, 2, 1, 2, 1, 1, 1],
   'col3':['AA','BB','CC','DD','EE','FF','GG']},index=['a', 'a', 'b', 'c', 'b', 'a','c'])
#duplicated(self, subset=None, keep='first')
#根据列名标记
#keep='first'
df.duplicated()#默认所有列,无重复记录
df.duplicated('col1')#第二、四、五行被标记为重复
df.duplicated(['col1','col2'])#第五行被标记为重复
#keep='last'
df.duplicated('col1','last')#第一、三、四行被标记重复
df.duplicated(['col1','col2'],keep='last')#第三行被标记为重复
#keep=False
df.duplicated('col1',False)#Series([True,True,True,True,True,False,False],index=['a','a','b','c','b','a','c'])
df.duplicated(['col1','col2'],keep=False)#在col1和col2列上出现相同的,都被标记为重复
type(df.duplicated(['col1','col2'],keep=False))#pandas.core.series.Series
#根据索引标记
df.index.duplicated()#默认keep='first',第二、五、七行被标记为重复
df.index.duplicated(keep='last')#第一、二、三、四被标记为重复
df[df.index.duplicated()]#获取重复记录行
df[~df.index.duplicated('last')]#获取不重复记录行
#标记Series重复例子
#duplicated(self, keep='first')
s = pd.Series(['one', 'one', 'two', 'two', 'two', 'three', 'four'] ,index= ['a', 'a', 'b', 'c', 'b', 'a','c'],name='sname')
s.duplicated()
s.duplicated('last')
s.duplicated(False)
#根据索引标记
s.index.duplicated()
s.index.duplicated('last')
s.index.duplicated(False)

drop_duplicates函数用于删除Series、DataFrame中重复记录,并返回删除重复后的结果

pandas.DataFrame.drop_duplicates(self, subset=None, keep='first', inplace=False)

pandas.Series.drop_duplicates(self, keep='first', inplace=False)

#删除DataFrame重复记录例子 
#drop_duplicates(self, subset=None, keep='first', inplace=False) 
df.drop_duplicates() 
df.drop_duplicates('col1')#删除了df.duplicated('col1')标记的重复记录 
df.drop_duplicates('col1','last')#删除了df.duplicated('col1','last')标记的重复记录 
df1.drop_duplicates(['col1','col2'])#删除了df.duplicated(['col1','col2'])标记的重复记录 
df.drop_duplicates('col1',keep='last',inplace=True)#inplace=True表示在原DataFrame上执行删除操作 
df.drop_duplicates('col1',keep='last',inplace=False)#inplace=False返回一个副本 
#删除Series重复记录例子 
#drop_duplicates(self, keep='first', inplace=False) 
s.drop_duplicates()

以上这篇Pandas标记删除重复记录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现在pickling的时候压缩的方法
Sep 25 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
python3中布局背景颜色代码分析
Dec 01 Python
python开发人人对战的五子棋小游戏
May 02 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 Python
Python将DataFrame的某一列作为index的方法
Apr 08 #Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 #Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 #Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 #Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 #Python
python随机取list中的元素方法
Apr 08 #Python
Python实现的端口扫描功能示例
Apr 08 #Python
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
详解Yii2 rules 的验证规则
2016/12/02 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python打包可执行文件的方法详解
2016/09/19 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Python数据库小程序源代码
2019/09/15 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
什么是Rollback Segment
2013/04/22 面试题
趣味游戏活动方案
2014/02/07 职场文书
手机被没收检讨书
2014/02/22 职场文书
异地年检委托书范本
2014/09/24 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
实习科室评语
2015/01/04 职场文书
答谢词范文
2015/01/05 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫