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中http请求方法库汇总
Jan 06 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
SQLite3中文编码 Python的实现
Jan 11 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
Python之re操作方法(详解)
Jun 14 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
python中yield的用法详解
Jan 13 Python
学会Python数据可视化必须尝试这7个库
Jun 16 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python 实现UTC时间加减的方法
2018/12/31 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
什么样的创业计划书可行性高?
2014/02/01 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
2014年德育工作总结
2014/11/20 职场文书
销售会议开幕词
2016/03/04 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
python基础之文件操作
2021/10/24 Python