python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]Merge函数的用法jfz免费资源网简单来说Merge函数相当于Excel中的vlookup函数。当我们对2个表进行数据合并的时候需要通过指定两个表中相同的列作为key,然后通过key匹配到其中要合并在一起的values值。jfz免费资源网然后对于merge函数在Pandas中分为1vs1,多(m)vs1,以及多(m)vs多(m)这三种场景。但是平时用的最多的往往是多vs1的这种场景。也就是说2…

大家好,又见面了,我是你们的朋友全栈君。

Merge函数的用法jfz免费资源网

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

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

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

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

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

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

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]jfz免费资源网

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

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]jfz免费资源网

代码演示:jfz免费资源网

1. 读取表1,表2中的内容,作为DataFrame赋值给变量jfz免费资源网

#%%

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为主表进行合并。jfz免费资源网

#%%

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

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

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

df03

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

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]jfz免费资源网

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

#%%

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

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

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

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

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

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

df04

结果:jfz免费资源网

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]jfz免费资源网

4. 将数据导出到Excel文件jfz免费资源网

#%%

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

df04.to_excel(writer,index=False)

print(“Done!!”)

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

python中的merge函数_Python Merge函数原理及用法解析[通俗易懂]jfz免费资源网

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136301.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java 截位法保留小数_【数量关系速算技巧】泡泡截位法专题

    java 截位法保留小数_【数量关系速算技巧】泡泡截位法专题资料分析都要找技巧,进行分析之类的,但是如果你对计算有所技巧的话,那么你的计算就相对简单,也会比别人快些,在节省做题时间以及做题时间的同时,还能够提高正确率。截位法使用范围:除了加减法,其他的运算都可以使用截位法。【截位法原理】如果我要把分子提高一部分,分母也要提高相应的部分,这样子得到的答案才不会有偏差,简言之就是同增同减。除法:【分子除以分母】12345/54321【用计算器得结果227】变…

  • 修改+首选+dns服务器地址,首选dns服务器地址怎么设置

    修改+首选+dns服务器地址,首选dns服务器地址怎么设置首选dns服务器地址怎么设置内容精选换一换修改服务IP地址,并且将DNS地址指向本机,然后修改计算机名为server。安装AD域服务之后,机器名称会自动变成“主机名+域名”的形式,例如server.huawei.com。在命令行下输入dcpromo.exe,安装AD域和DNS服务器,不能使用添加角色向导的方式将AD域和DNS服务器安装在一起。您可以将现有域名从其他服务商迁移到华为云平台提供的云…

  • 二进制实现加法_递归实现十进制转换二进制

    二进制实现加法_递归实现十进制转换二进制一、原理1、化简先看一个例子:看一下3+4的加法运算3的二进制表示:0114的二进制表示:1003^4(3按位异或4)的结果是:111=>7上面的到的结果是

  • Web.config中customErrors异常信息配置

    Web.config中customErrors异常信息配置开发工具:VisualStudio201715.7.5开发平台:Windows10新建WebApi项目,Web.config配置文件中,system.web下级节点中默认没有customErrors的配置,即customErrors默认是RemoteOnly<customErrorsmode="RemoteOnly"/><customErrorsdef…

  • phpstorm 激活码生成【最新永久激活】2022.02.28

    (phpstorm 激活码生成)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 静态分析工具之-AXMLPrinter2.jar的使用方法

    静态分析工具之-AXMLPrinter2.jar的使用方法

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号