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引用(import)文件夹下的py文件的方法
Aug 26 Python
Python格式化css文件的方法
Mar 10 Python
Python创建xml文件示例
Mar 22 Python
python中模块的__all__属性详解
Oct 26 Python
Python发展简史 Python来历
May 14 Python
django框架防止XSS注入的方法分析
Jun 21 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
django日志默认打印request请求信息的方法示例
May 17 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
python中使用.py配置文件的方法详解
Nov 23 Python
pytorch中index_select()的用法详解
Jan 06 Python
Django url 路由匹配过程详解
Jan 22 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
Vue SSR 组件加载问题
2018/05/02 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python实现批量文件重命名
2019/10/31 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
财务会计毕业生个人求职信
2014/02/03 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
家具商场的活动方案
2014/08/16 职场文书
无私奉献演讲稿
2014/09/04 职场文书
运动会广播稿100字
2014/09/14 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
2014年校长工作总结
2014/12/11 职场文书
个人收入证明范本
2015/06/12 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript