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中正则表达式的使用详解
Oct 17 Python
Python线程详解
Jun 24 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
python删除本地夹里重复文件的方法
Nov 19 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
python 并发下载器实现方法示例
Nov 22 Python
Django ValuesQuerySet转json方式
Mar 16 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
python_tkinter事件类型详情
Mar 20 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学习 变量使用总结
2011/03/24 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
python进程与线程小结实例分析
2018/11/11 PHP
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
AngularJs每天学习之总体介绍
2017/08/07 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
webpack之devtool详解
2018/02/10 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python实现的建造者模式示例
2018/08/06 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
is_file和file_exists效率比较
2021/03/14 PHP
大学生自我鉴定
2013/12/08 职场文书
优质服务活动实施方案
2014/05/02 职场文书
企业环保标语
2014/06/10 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
销售员岗位职责范本
2015/04/11 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
java实现面板之间切换功能
2022/06/10 Java/Android
vscode内网访问服务器的方法
2022/06/28 Servers