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 04 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
Python BS4库的安装与使用详解
Aug 08 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python集成开发环境配置(pycharm)
Feb 14 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
详解python日志输出使用配置文件格式
Feb 10 Python
Python Selenium异常处理的实例分析
Feb 28 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中header和session_start前不能有输出原因分析
2013/01/11 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
PDO::setAttribute讲解
2019/01/29 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
JS动画效果代码3
2008/04/03 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
js跳转页面方法总结
2014/01/29 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Python入门教程之if语句的用法
2015/05/14 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
利用python生成照片墙的示例代码
2020/04/09 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
文员岗位职责
2013/11/09 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书