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下函数参数的传递(参数带星号的说明)
Sep 19 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
tensorflow识别自己手写数字
Mar 14 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
python与字符编码问题
May 24 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
python中安装django模块的方法
Mar 12 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
python爬虫容易学吗
Jun 02 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
利用Python如何画一颗心、小人发射爱心
Feb 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
在字符串中把网址改成超级链接
2006/10/09 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
初级Java程序员面试题
2016/03/03 面试题
市场营销专科应届生求职信
2013/11/24 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
刑事法律意见书
2015/06/04 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python