Merge函数的用法

简单来说Merge函数相当于Excel中的vlookup函数。当我们对2个表进行数据合并的时候需要通过指定两个表中相同的列作为key,然后通过key匹配到其中要合并在一起的values值。

然后对于merge函数在Pandas中分为1vs1, 多(m)vs1,以及多(m)vs多(m)这三种场景。但是平时用的最多的往往是多vs1的这种场景。也就是说2个表中其中一个表作为key的值会出现重复,而另外一个表作为key的值则是唯一。

这种场景也很好理解。例如:我们在生产环境中对服务器进行管理,一台服务器上可能装了各种各样的软件。那么如果是Excel表格来管理的话一个软件就占用一行信息。而服务器名是相同的。所以一个相同的服务器名就会出现多个。

这台服务器上安装了多少个软件,服务器名就会重复几次,也就是最终有几行。那么另外一个表要想读取这台服务器上安装的所有软件,那么服务器名就要作为key,各个软件的信息则是value值。最终被读取写入的那张表的key只能唯一。

我们看下面这个案例,是真实多v1的案例。为了数据安全我只能把截图分享给大家,并把服务器名遮掩希望大家谅解。

数据表1:作为查询的总表,其中服务器名这列就是B列中的信息会出现重复

数据表2:下表为按照表1的key就是hostname来匹配,匹配到后按照表2的列名来读取信息写入到表2.这里同上因为服务器名敏感,所以也用马赛克挡住了,忘谅解。

代码演示:

1. 读取表1,表2中的内容,作为DataFrame赋值给变量

#%%

import pandas as pd

#读取表1

df01 = pd.read_excel("./datas/new_all_datas.xlsx",

header=5)

df01.head()

#%%

#读取表2

df02 = pd.read_excel("./datas/new_software_InputSheet.xlsx")

df02

#%%

2. 通过merge函数合并两个DataFrame。on代表指明拿什么作为key来进行匹配。how这里分为left,right,inner,outer等方式。这里left代表按照表1为主表进行合并。

#%%

#ホスト名作为key来匹配两个表,相当于vlookup函数

#how=left代表以left左表为主,这里则代表表二为左表

df03 = pd.merge(df02,df01,on="ホスト名",how="left")

df03

结果:合并结果如下。但是因为表1,表2中出现重复元素的列名,因此合并后Pandas会按照后缀,把相同列名按照_x,_y的方式生成多列。

3. 去除没用的列并按照条件查询想要的数据. 下列需求是按照服务器名,找出对应的"ソフトウェア名"也就是software名为Trend Micro的软件以及"ソフトウェア製造元"software制造商为Symantec的所有行。

#%%

#因为表中有相同的列名因此自动后缀被加上了_y

#下面代表筛选查询范围,以及指定查询值

df03 = df03.loc[:,["ホスト名","行番号","ソフトウェア区分_y","ソフトウェア名_y","ソフトウェアバージョン_y","ソフトウェア製造元_y"]]

df04 = df03[(df03["ソフトウェア名_y"]=="Trend Micro") | (df03["ソフトウェア製造元_y"]=="Symantec")]

#重新把列名设定换一下然后输出

df04.columns = ["ホスト名","行番号","ソフトウェア区分","ソフトウェア名","ソフトウェアバージョン","ソフトウェア製造元"]

df04

结果:

4. 将数据导出到Excel文件

#%%

with pd.ExcelWriter("./datas/output_mergedatas.xlsx") as writer:

df04.to_excel(writer,index=False)

print("Done!!")

结果:当然也可以直接导入到数据表2中去。我这里为了不破坏原表,因此作为新的Excel表导出了。

大家在日常业务中,如果遇到类似场景可以尝试通过merge函数来合并您的数据。还可以结合loc切片以及写下来要发表的pivot,pivot_table透视表来更加丰富的对数据进行清洗。

总体而言用惯了Pandas后会感觉相比Excel中的函数及宏。Pandas会更加的灵活也更加的强大。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持随便开发网。

python中merge函数怎么用_Python Merge函数原理及用法解析相关推荐

  1. 在python中get是什么意思_python get函数有什么作用?示例解析

    这篇文章之中我们来了解一下关于python字典之中的pythonget函数的相关知识,get函数是什么意思,他有什么作用都将会在接下来的文章之中得到解答. 描述 Python 字典(Dictionar ...

  2. python中reversed是什么意思_Python reversed函数及使用方法解析

    Python reversed函数及使用方法解析 有些时候,程序需要进行反向遍历,此时可通过 reversed() 函数,该函数可接收各种序列(元组.列表.区间等)参数,然后返回一个"反序排 ...

  3. python中def之间变量传递_Python def函数的定义、使用及参数传递实现代码

    Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为: def 函数名(参数1, 参数2, --, 参数N): 执行语句函数名为调用的表示名,参数则是传入的参数,可以更具需要 ...

  4. python中的figure什么意思_Python Matplotlib.figure.Figure.text()用法及代码示例

    Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展. Figure模块提供了顶层Artist,即Figure,其中包含所有绘图元素.此模块用于控制所有图元的子图和顶层容器 ...

  5. python中for循环的代码_Python for循环及基础用法详解

    Python 中的循环语句有 2 种,分别是 while 循环和 for 循环,前面章节已经对 while 做了详细的讲解,本节给大家介绍 for 循环,它常用于遍历字符串.列表.元组.字典.集合等序 ...

  6. python中values是什么意思_Python values()与itervalues()的用法详解

    dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value: d = { 'Adam': 95, 'Li ...

  7. python装饰器作用和功能_Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  8. 可以获取python中输出函数帮助的是_Python帮助函数调试函数 用于获取对象的属性及属性值...

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  9. python中assert是什么意思_python assert函数是什么以及如何使用?

    Assert是经常能在代码编写中看到的代码,但是因为过于常见,小编也差点把这个代码遗忘为大家介绍了,大家也不少碰到吧,但是知道基础的意思,还知道怎么去使用吗?想必被大家忽视了吧,可能就是因为常见,所以 ...

  10. python中噪音是什么意思_Python数据噪音

    数据处理涉及以各种格式处理数据,例如合并,分组,连接等,以便分析或准备将其与另一组数据一起使用. python具有内置函数功能,可将这些争议方法应用于各种数据集以实现分析目标. 在本章中,我们将看几个 ...

最新文章

  1. 0909 编译原理1
  2. linux中下载ftp文件
  3. cmake交叉编译android,CMake Android 交叉编译
  4. SQL Server 和 MySql 语法和关键字的区别
  5. 《像计算机科学家一样思考Python》——3.9 变量和形参是局部的
  6. vue ui 启动,浏览器报错Unexpected token
  7. GIT项目管理工具(part1)--简介及概念
  8. 咸宁省2021年模拟高考成绩查询怎么查,2021咸宁市地区高考成绩排名查询,咸宁市高考各高中成绩喜报榜单...
  9. 用带参数的方法给空数组放元素,寻找数组里面的值是否存在。
  10. IDEA打开父类的接口方法快捷键
  11. nginx mysql双机热备_MYSQL双机热备
  12. Qt文档阅读笔记-QCompleter官方解析及实例
  13. css里slidebottom,jquery - 从CSS“top”到“bottom”的jQuery动画 - 堆栈内存溢出
  14. 最经典的职场十大理论,好文值得一看滴童鞋们。2
  15. 高薪编程,品牌公司——人往高处走,作为程序员的你够格吗
  16. 育网校园云盘,私有云盘,电子备课系统。
  17. 用matlab来计算函数,Matlab函数求导教程
  18. 三国杀服务器维护中进不去,三国杀网页版打不开该怎么解决?
  19. ANSI-美国国家标准学会
  20. 浏览器全球的书签都在这里了,看看有没有你的!

热门文章

  1. Project Honolulu 正式版发布为 Windows Admin Center
  2. Asp.net 面向接口框架之应用程序上下文作用域组件
  3. C# 字符串操作:split、substring、Format
  4. mac safari无法连接服务器_宇航员乘坐SpaceX飞船返航中iPad上Safari出现“无法连接到网络”错误...
  5. 《Matlab实用案例》系列Matlab从入门到精通实用100例案例教程目录(持续更新)
  6. SVN之如何添加默认.a文件
  7. C语言之在结构体里面放很多函数指针
  8. 趣学算法之斐波拉契数列实现
  9. linux c之c语言符合标准的头文件和linux常用头文件
  10. 看得懂的设计模式 享元模式python3 最基本(简单)实现