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使用PyV8执行javascript代码示例分享
Dec 04 Python
Python列表和元组的定义与使用操作示例
Jul 26 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
Python内存管理实例分析
Jul 10 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
Python3 读取Word文件方式
Feb 13 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
Python实现密钥密码(加解密)实例详解
Apr 26 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中文汉字验证码
2007/04/08 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
python爬取安居客二手房网站数据(实例讲解)
2017/10/19 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python的Django框架中if标签的相关使用
2015/07/15 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
庆祝三八妇女节标语
2014/10/09 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS