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装饰器实例大详解
Oct 25 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
Python实现的读写json文件功能示例
Jun 05 Python
python实现飞机大战微信小游戏
Mar 21 Python
python使用正则表达式来获取文件名的前缀方法
Oct 21 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
opencv 阈值分割的具体使用
Jul 08 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
如何在Python项目中引入日志
May 31 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
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
心扬JS分页函数代码
2010/09/10 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
python encode和decode的妙用
2009/09/02 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
python实现井字棋游戏
2020/03/30 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
通过自学python能找到工作吗
2020/06/21 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
团代会主持词
2014/04/02 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫