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高效编程技巧
Jan 07 Python
Python subprocess模块学习总结
Mar 13 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
使用requests库制作Python爬虫
Mar 25 Python
Python读写/追加excel文件Demo分享
May 03 Python
Python if语句知识点用法总结
Jun 10 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python json格式化打印实现过程解析
Jul 21 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
python实现ROA算子边缘检测算法
Apr 05 Python
python实现简单石头剪刀布游戏
Oct 24 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 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
SQL面试题
2013/12/09 面试题
大学新生欢迎词
2014/01/10 职场文书
小学六年级学生评语
2014/04/22 职场文书
暂停营业通知
2015/04/25 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
js不常见操作运算符总结
2021/11/20 Javascript