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实现html转ubb代码(html2ubb)
Jul 03 Python
Python的Bottle框架的一些使用技巧介绍
Apr 08 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
Python os.access()用法实例
Feb 18 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
Python任务自动化工具tox使用教程
Mar 17 Python
如何在django中运行scrapy框架
Apr 22 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
Python Unittest原理及基本使用方法
Nov 06 Python
python利用后缀表达式实现计算器功能
Feb 22 Python
python实现的人脸识别打卡系统
May 08 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上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
原生JS进行前后端同构
2018/04/22 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
Python线程指南详细介绍
2017/01/05 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
教你学会使用Python正则表达式
2017/09/07 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python requests使用socks5的例子
2019/07/25 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
Linux文件操作命令都有哪些
2015/02/27 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
师德学习感言
2014/01/31 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
施工安全协议书范本
2014/09/26 职场文书
诚信承诺书
2015/01/19 职场文书
合同纠纷调解书
2015/05/20 职场文书