Python Dataframe 指定多列去重、求差集的方法


Posted in Python onJuly 10, 2018

1)去重

指定多列去重,这是在dataframe没有独一无二的字段作为PK(主键)时,需要指定多个字段一起作为该行的PK,在这种情况下对整体数据进行去重。

Attention:主要用到了drop_duplicates方法,并设置参数subset为多个字段名构成的数组。

具体代码如下:

>>>import pandas as pd 
>>>data={'state':[1,1,2,2,1,2,2],'pop':['a','b','c','d','b','c','d']}
>>>frame=pd.DataFrame(data) 
>>>frame
	pop	state
0	a	1
1	b	1
2	c	2
3	d	2
4	b	1
5	c	2
6	d	2
>>>frame.drop_duplicates(subset=['pop','state'])
	pop	state
0	a	1
1	b	1
2	c	2
3	d	2

2)求差集

假设有两个dataframe为a和b,a和b可以是相互包含的关系,现在想要将a中和b重复的内容去掉,也就是求差集,步骤如下:

(1)需要对两个dataframe进行去重。

(2)利用append方法,a=a.append(b)

(3)再次利用append方法,a=a.append(b)

(4)去重,利用drop_duplicates方法,a=a.drop_duplicates(),以及设置参数keep=False,意思就是只要有重复,重复的记录都去掉。(keep默认='first',也就是保留第一条记录)

具体代码如下:

>>>data_a={'state':[1,1,2],'pop':['a','b','c']}
>>>data_b={'state':[1,2,3],'pop':['b','c','d']}
>>>a=pd.DataFrame(data_a)
>>>a 
	pop	state
0	a	1
1	b	1
2	c	2
>>>b=pd.DataFrame(data_b) 
>>>b
	pop	state
0	b	1
1	c	2
2	d	3
>>>a = a.append(b)
>>>a = a.append(b)
>>>result = a.drop_duplicates(subset=['pop','state'],keep=False)
>>>result
	pop	state
0	a	1

以上这篇Python Dataframe 指定多列去重、求差集的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化工具日志查询分析脚本代码实现
Nov 26 Python
python k-近邻算法实例分享
Jun 11 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Python time库基本使用方法分析
Dec 13 Python
python3注册全局热键的实现
Mar 22 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 #Python
python3中函数参数的四种简单用法
Jul 09 #Python
python3学习之Splash的安装与实例教程
Jul 09 #Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 #Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 #Python
python中ASCII码和字符的转换方法
Jul 09 #Python
python中ASCII码字符与int之间的转换方法
Jul 09 #Python
You might like
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
JS实现分页导航效果
2020/02/19 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
python函数超时自动退出的实操方法
2020/12/28 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
机械设计专业应届生求职信
2013/11/21 职场文书
群众路线剖析材料
2014/02/02 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
服装设计专业自荐信
2014/06/17 职场文书
教师工作失职检讨书
2014/09/18 职场文书
个人事迹材料范文
2014/12/29 职场文书
扬州个园导游词
2015/02/06 职场文书
毕业生自荐信范文
2015/03/05 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
关于感恩的作文
2019/08/26 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
详解TypeScript中的类型保护
2021/04/29 Javascript
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers