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 smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
详细讲解Python中的文件I/O操作
May 24 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
Python中的heapq模块源码详析
Jan 08 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
Tensorflow分批量读取数据教程
Feb 07 Python
Python定义函数实现累计求和操作
May 03 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
Python实现列表索引批量删除的5种方法
Nov 16 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
初探PHP5
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
js密码强度校验
2015/11/10 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python处理html转义字符的方法详解
2016/07/01 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python Tkinter版学生管理系统
2019/02/20 Python
python创造虚拟环境方法总结
2019/03/04 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
什么是Python中的顺序表
2020/06/02 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
学年自我鉴定范文
2013/10/01 职场文书
师范生自我鉴定范文
2013/10/05 职场文书
大学军训感言300字
2014/03/09 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
运动会广播稿200字
2014/10/18 职场文书
协议书范文
2015/01/27 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
初中政治教师教学反思
2016/02/23 职场文书