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中何种情况下需要使用断言
Apr 01 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
老生常谈python之鸭子类和多态
Jun 13 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
带你认识Django
Jan 15 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
Python 使用type来定义类的实现
Nov 19 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
Python利用命名空间解析XML文档
Aug 10 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 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
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
javascript常用函数归纳整理
2014/10/31 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
python脚本设置系统时间的两种方法
2016/02/21 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Linux下python制作名片示例
2018/07/20 Python
利用python修改json文件的value方法
2018/12/31 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
中学门卫岗位职责
2013/12/26 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
艾滋病宣传标语
2014/06/25 职场文书
化工实习心得体会
2014/09/09 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS