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实现定时播放mp3
Mar 29 Python
python中的全局变量用法分析
Jun 09 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python实现元素等待代码实例
Nov 11 Python
Python字符串格式化f-string多种功能实现
May 07 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
Python中super().__init__()测试以及理解
Dec 06 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
javascript闭包的理解
2015/04/01 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Python Flask框架扩展操作示例
2019/05/03 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
化学专业毕业生自荐信
2013/11/15 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
社团活动总结模板
2014/06/30 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
心得体会的写法
2014/09/05 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Python开发五子棋小游戏
2022/05/02 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers