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 (1)
Oct 31 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
python读取文件名并改名字的实例
Jan 07 Python
解决Django中多条件查询的问题
Jul 18 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
python系列 文件操作的代码
Oct 06 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
python三引号如何输入
Jul 06 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打开和关闭文件操作函数总结
2014/11/18 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
详解Python中DOM方法的动态性
2015/04/11 Python
python中defaultdict的用法详解
2017/06/07 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python实现基于POS算法的区块链
2018/08/07 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python模块如何查看
2020/06/16 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
一些.net面试题
2014/10/06 面试题
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
会员卡清退活动总结
2014/08/27 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
2014年工会工作总结
2014/11/12 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript