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中contextlib上下文管理模块的用法
Jun 28 Python
Django如何实现内容缓存示例详解
Sep 24 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
python实现AES和RSA加解密的方法
Mar 28 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
Django实现文章详情页面跳转代码实例
Sep 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
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
用javascript实现倒计时效果
2021/02/09 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
轻松理解Python 中的 descriptor
2017/09/15 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
质检部岗位职责
2013/11/11 职场文书
毕业生找工作求职信
2014/08/05 职场文书
新教师培训心得体会
2014/09/02 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript