pandas DataFrame 交集并集补集的实现


Posted in Python onJune 24, 2019

1.场景,对于colums都相同的dataframe做过滤的时候

例如:

df1 = DataFrame([['a', 10, '男'], 
         ['b', 11, '男'], 
         ['c', 11, '女'], 
         ['a', 10, '女'],
         ['c', 11, '男']], 
        columns=['name', 'age', 'sex'])

df2 = DataFrame([['a', 10, '男'], 
         ['b', 11, '女']],
        columns=['name', 'age', 'sex'])

取交集:print(pd.merge(df1,df2,on=['name', 'age', 'sex']))

取并集:print(pd.merge(df1,df2,on=['name', 'age', 'sex'], how='outer'))

取差集(从df1中过滤df1在df2中存在的行):

df1 = df1.append(df2)
df1 = df1.append(df2)
df1 = df1.drop_duplicates(subset=['name', 'age', 'sex'],keep=False)
print(df1)

代码:

# -*- coding:utf-8 -*-
__version__ = '1.0.0.0'
"""
@brief :  简介
@details:  详细信息
@author :  zhphuang
@date  :  2018-10-29
"""

import pandas as pd
from pandas import *

df1 = DataFrame([['a', 10, '男'],
         ['b', 11, '男'],
         ['c', 11, '女'],
         ['a', 10, '女'],
         ['c', 11, '男']],
        columns=['name', 'age', 'sex'])
print("df1:\n%s\n\n" % df1)
df2 = DataFrame([['a', 10, '男'],
         ['b', 11, '女']],
        columns=['name', 'age', 'sex'])
print("df2:\n%s\n\n" % df2)
# 取交集
print("交集:\n%s\n\n" % pd.merge(df1,df2,on=['name', 'age', 'sex']))

# 取并集
print("并集:\n%s\n\n" % pd.merge(df1,df2,on=['name', 'age', 'sex'], how='outer'))

# 从df1中过滤df1在df2中存在的行,也就是取补集
df1 = df1.append(df2)
df1 = df1.append(df2)
print("补集(从df1中过滤df1在df2中存在的行):\n%s\n\n" % df1.drop_duplicates(subset=['name', 'age', 'sex'],keep=False))

截图

pandas DataFrame 交集并集补集的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用MONGODB入门实例
May 11 Python
python实现发送邮件及附件功能
Mar 02 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
Python探索之ModelForm代码详解
Oct 26 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
python实现停车管理系统
Nov 30 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
python爬虫快速响应服务器的做法
Nov 24 Python
python中Mako库实例用法
Dec 31 Python
教你用python实现一个无界面的小型图书管理系统
May 21 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 #Python
pandas.cut具体使用总结
Jun 24 #Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 #Python
python日期相关操作实例小结
Jun 24 #Python
使用Python Pandas处理亿级数据的方法
Jun 24 #Python
Python3批量生成带logo的二维码方法
Jun 24 #Python
解决python文件双击运行秒退的问题
Jun 24 #Python
You might like
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
php实现的mongodb操作类
2015/05/28 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
js尾调用优化的实现
2019/05/23 Javascript
Python语法快速入门指南
2015/10/12 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python pandas生成时间列表
2019/06/29 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python如何合并多个字典或映射
2020/07/24 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
STP的判定过程
2012/10/01 面试题
一套软件开发工程师笔试题
2015/05/18 面试题
《第一次抱母亲》教学反思
2014/04/16 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
运动会加油稿100字
2014/09/19 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
储备店长岗位职责
2015/04/14 职场文书
我的1919观后感
2015/06/03 职场文书
学生会主席任命书
2015/09/21 职场文书
丧事答谢词大全
2015/09/30 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python