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 域名分析工具实现代码
Jul 15 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
用python做一个搜索引擎(Pylucene)的实例代码
Jul 05 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python之Class&Object用法详解
Dec 25 Python
解决Django Haystack全文检索为空的问题
May 19 Python
opencv 阈值分割的具体使用
Jul 08 Python
Python selenium模块实现定位过程解析
Jul 09 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 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
Terran兵种介绍
2020/03/14 星际争霸
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
angular 服务随记小结
2019/05/06 Javascript
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
python判断完全平方数的方法
2018/11/13 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
Python 可视化神器Plotly详解
2020/12/26 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
工地安全检查制度
2014/02/04 职场文书
浪费资源的建议书
2014/03/12 职场文书
2014年度个人总结范文
2015/03/09 职场文书
整脏治乱工作简报
2015/07/21 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
JavaScript文档对象模型DOM
2021/11/20 Javascript
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python