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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
Python实现k-means算法
Feb 23 Python
python实现按长宽比缩放图片
Jun 07 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
python - asyncio异步编程
Apr 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
2006/12/23 PHP
PHP 表单提交给自己
2008/07/24 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
js 幻灯片的实现
2011/12/06 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
react-router中的属性详解
2017/06/01 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
python服务器与android客户端socket通信实例
2014/11/12 Python
让 python 命令行也可以自动补全
2014/11/30 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
python实现爬山算法的思路详解
2019/04/09 Python
django rest framework serializers序列化实例
2020/05/13 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
2014年向国旗敬礼活动总结
2014/09/27 职场文书
司机岗位职责
2015/02/04 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
会计做账心得体会
2016/01/22 职场文书
高一化学教学反思
2016/02/22 职场文书
人力资源部工作计划
2019/05/14 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python