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进阶教程之动态类型详解
Aug 30 Python
python实现删除文件与目录的方法
Nov 10 Python
python常见排序算法基础教程
Apr 13 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
Python如何实现爬取B站视频
May 20 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
python 获取计算机的网卡信息
Feb 18 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 curl 并发最佳实践代码分享
2012/09/05 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
Yii2单元测试用法示例
2016/11/12 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
javascript常用的方法分享
2015/07/01 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python切割图片的示例
2020/11/12 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
网上开商店的创业计划书
2014/01/19 职场文书
安全资金保障制度
2014/01/23 职场文书
小学生暑假家长评语
2014/04/17 职场文书
购房个人委托书范本
2014/10/11 职场文书
员工工作表现自我评价
2015/03/06 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
员工工作心得体会
2019/05/07 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server