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实现html转ubb代码(html2ubb)
Jul 03 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
python小程序实现刷票功能详解
Jul 17 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
python global关键字的用法详解
Sep 05 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Python中常用的高阶函数实例详解
Feb 21 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python为何不支持switch语句原理详解
Oct 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
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python实现360的字符显示界面
2014/02/21 Python
Linux下Python获取IP地址的代码
2014/11/30 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
基于PyTorch中view的用法说明
2021/03/03 Python
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
党员批评与自我批评
2014/02/12 职场文书
会计出纳岗位职责
2015/03/31 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
使用pytorch实现线性回归
2021/04/11 Python
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
德劲DE1105机评
2022/04/05 无线电