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 代码性能优化技巧分享
Aug 07 Python
Python实现大文件排序的方法
Jul 10 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
python放大图片和画方格实现算法
Mar 30 Python
python的继承知识点总结
Dec 10 Python
python多任务及返回值的处理方法
Jan 22 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 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中使用Oracle数据库(1)
2006/10/09 PHP
php单例模式的简单实现方法
2016/06/10 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
javascript 回调函数详解
2014/11/11 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
神经网络python源码分享
2017/12/15 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
python xpath获取页面注释的方法
2019/01/14 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
印刷工程专业应届生求职信
2013/09/29 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis