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 BeautifulSoup使用方法详解
Nov 21 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
Python类属性与实例属性用法分析
May 09 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
pycharm远程调试openstack代码
Nov 21 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
PyTorch 导数应用的使用教程
Aug 31 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
PHP编码规范的深入探讨
2013/06/06 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python通过future处理并发问题
2017/10/17 Python
django定期执行任务(实例讲解)
2017/11/03 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python bytes string相互转换过程解析
2020/03/05 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
庆七一活动方案
2014/01/25 职场文书
机关门卫制度
2014/02/01 职场文书
财经学院自荐信范文
2014/02/02 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
就业协议书范本
2014/04/11 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
参观邀请函范文
2015/02/02 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
小学少先队活动总结
2015/05/08 职场文书
小学中队长竞选稿
2015/11/20 职场文书