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利用hook技术破解https的实例代码
Mar 25 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
python实现控制台打印的方法
Jan 12 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
学习和使用python的13个理由
Jul 30 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Python with语句用法原理详解
Jul 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
php简单日历函数
2015/10/28 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
vue多次循环操作示例
2019/02/08 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python并行分布式框架Celery详解
2018/10/15 Python
python psutil模块使用方法解析
2019/08/01 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
python2和python3哪个使用率高
2020/06/23 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
青年教师典范事迹材料
2014/01/31 职场文书
中等生评语大全
2014/05/04 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
工会工作个人总结
2015/03/03 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL