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 相关文章推荐
安装dbus-python的简要教程
May 05 Python
Python NumPy库安装使用笔记
May 18 Python
python中实现k-means聚类算法详解
Nov 11 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
聊聊Python中的pypy
Jan 12 Python
python实现自动化上线脚本的示例
Jul 01 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
Python opencv缺陷检测的实现及问题解决
Apr 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
构建简单的Webmail系统
2006/10/09 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
PHP Reflection API详解
2015/05/12 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
python获取远程图片大小和尺寸的方法
2015/03/26 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python如何求圆的面积
2020/07/01 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
银行会计职员个人的自我评价
2013/09/29 职场文书
高三历史教学反思
2014/01/09 职场文书
迟到检讨书900字
2014/01/14 职场文书
超市总经理岗位职责
2014/02/02 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
工作说明书范文
2014/05/07 职场文书
分公司经理任命书
2014/06/05 职场文书
2014年党务工作总结
2014/11/25 职场文书
用Python提取PDF表格的方法
2021/04/11 Python