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中的二叉树查找算法模块使用指南
Jul 04 Python
Python过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
pow在python中的含义及用法
Jul 11 Python
python是否适合网页编程详解
Oct 04 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
python实现学生信息管理系统源码
Feb 22 Python
Django migrate报错的解决方案
May 20 Python
Django集成富文本编辑器summernote的实现步骤
May 31 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 array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
微信支付开发发货通知实例
2016/07/12 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
微信小程序表单验证错误提示效果
2017/05/19 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
实例详解Python装饰器与闭包
2019/07/29 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
重构Python代码的六个实例
2020/11/25 Python
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
校园创业策划书
2014/01/14 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
老师对学生的寄语
2014/04/09 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
语文课外活动总结
2014/08/27 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
2014个人年度工作总结
2014/12/15 职场文书
文明单位申报材料
2014/12/23 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
SQL Server实现分页方法介绍
2022/03/16 SQL Server