Pandas 之 merge

merge的作用:

merge函数在Python的pandas库中的作用是用来合并两个或多个DataFrame数据表,依据指定的一个或多个键(通常是列名)进行连接操作[1]。

merge函数可以有多种连接类型(如内连接inner、左连接left、右连接right、全连接outer)来组合多个DataFrame列表: 

inner:

内连接(inner join):仅返回键名在两个DataFrame中都存在的行

手动生成两个DataFrame对象

import pandas as pd
left = pd.DataFrame(data=[["K0","K0","A0","B0"], ["K0", "K1","A1","B1"], ["K1", "K0","A2","B2"], ["K2", "K1","A3","B3"]], columns=["key1", "key2","A","B"])
left
right = pd.DataFrame(data=[["K5","K0","C0","D0"], ["K1", "K0","C1","D1"], ["K1", "K0","C2","D2"], ["K2", "K1","C3","D3"]], columns=["key1", "key2","C","D"])
right

 

 

 内连接:

# inner
# F3
result = pd.merge(left,right,how="inner",on = ["key1", "key2"])
result

 

 代码F3讲解:

在此示例中,leftright是待合并的DataFrame,how='inner'用来指定连接方式on=['key1', 'key2']表示根据key1key2这两列进行连接。连接后的结果存储在新的DataFrame result 中

outer:

全连接: 返回左右DataFrame中所有键的所有行,任何一方没有匹配键的行都会用NaN填充缺失的数据。

# outer
# F4
result = pd.merge(left,right,how="outer",on = ["key1", "key2"])
result

 这个图不完整,刚才没有显示完但注释是对的。

 

完整的:

 

left:

左连接: 左连接同样基于键列,但其结果集包含了左DataFrame的所有行。对于这些行,如果它们在右DataFrame中找到匹配的键值,则会将右表对应列的值合并进来;若在右表中找不到匹配项,则相应的位置会被填充NaN或其他默认缺失值。这意味着左连接确保了左表的所有记录都会出现在结果集中。

# left
# F6
result = pd.merge(left,right,how="left",on = ["key1", "key2"])
result

right:

右连接:与左连接相反,右连接保证了右DataFrame的所有行都会出现在结果集中。每行右边数据表中的记录,如果有在左边数据表中匹配的键值,则会合并左表相应列的值;如果没有匹配项,则左边相关位置使用NaN填充。

# right
# F6
result = pd.merge(left,right,how="right",on = ["key1", "key2"])
result

 

 我的疑惑: 还是纵向和横向的问题,

这里的 how="left" 就已经指定了进行左连接操作,即保留 left DataFrame 中的所有行,并根据 key1 和 key2 列与 right DataFrame 进行匹配合并。

axis 参数并不适用于 pd.merge() 函数,它是用于像 pd.concat() 这样的函数,用于指定是沿着行(axis=0)还是列(axis=1)进行拼接操作。在做表连接时无需指定 axis 参数。所以,上述代码去掉 axis=1 后是正确的。


[1]通义千问(2024)AI文本提问.merge的作用https://tongyi.aliyun.com/qianwen/?sessionId=f78ee60c3a39451ca41740527b74eb3e通义千问 (aliyun.com)icon-default.png?t=N7T8https://tongyi.aliyun.com/qianwen/?sessionId=f78ee60c3a39451ca41740527b74eb3e 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/442594.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【科研基础|课程】信息论

信息论课程 -上海交大 - 2020春季学期 F:\B\2.sources\CS258信息论 文章目录 1- 信息熵 | 联合熵 | 条件熵 | 链式法则1.1-Entropy1- 信息熵 | 联合熵 | 条件熵 | 链式法则 P3 信息熵 | 联合熵 | 条件熵 | 链式法则 1.1-Entropy Entropy: Brief History 熵的由来,由热力学…

【sw网络监控】通过snmp协议相关的snmp-exporter(收集交换机网络监控数据)+ promethus + grafana

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

● 309.最佳买卖股票时机含冷冻期 多加条件:卖出之后有一天冷冻期不能买入,即卖出之后至少隔一天才能再买入。 要搞清楚每一天有什么状态:持有股票(已买入)、不持有股票(已卖出)。不持有股票…

代码随想录 回溯算法-棋盘问题

目录 51.N皇后 37.解数独 51.N皇后 51. N 皇后 困难 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n &…

【论文精读】融合知识图谱和语义匹配的医疗问答系统

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

LLM 推理优化探微 (2) :Transformer 模型 KV 缓存技术详解

编者按:随着 LLM 赋能越来越多需要实时决策和响应的应用场景,以及用户体验不佳、成本过高、资源受限等问题的出现,大模型高效推理已成为一个重要的研究课题。为此,Baihai IDP 推出 Pierre Lienhart 的系列文章,从多个维…

世界上最伟大的商业模式是“让利”,总结10套消费返利玩转市场!

文丨微三云营销总监胡佳东,点击上方“关注”,为你分享市场商业模式电商干货。 - 引言:很多企业家朋友说,生意越来越难做了,市场太卷、同行价格低、难招商、难融资、难推广,其实你是不懂“人心”&#xff…

118.龙芯2k1000-pmon(17)-制作ramdisk

目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。 对生产就不太那么友好,能否不用虚拟机就能装Linux系统呢? 主要是文件系统的问题需要解决,平时我们一般是用nfs挂载后,然后对硬盘格式化,之后…

博特激光——激光打标机工作原理介绍

激光打标机,作为现代标识技术的杰出代表,其工作原理的高效与精确性使得它在众多行业中占据了举足轻重的地位。今天,我们将深入探讨激光打标机的工作原理及其背后的科技魅力。 激光打标机的工作原理主要基于激光的高能量和聚焦特性。首先&…

AI新工具 百分50%算力确达到了GPT-4水平;将音乐轨道中的人声、鼓声、贝斯等音源分离出来等

1: Pi 百分50%算力确达到了GPT-4水平 Pi 刚刚得到了巨大的升级!它现在由最新的 LLMInflection-2.5 提供支持,它在所有基准测试中都与 GPT-4 并驾齐驱,并且使用不到一半的计算来训练。 地址:https://pi.ai/ 2: Moseca 能将音乐…

【REST2SQL】12 REST2SQL增加Token生成和验证

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

阿里云有免费服务器吗?在哪领?

阿里云服务器免费试用申请链接入口:aliyunfuwuqi.com/go/free 阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置: 阿里云免费服务器领取 阿里…

数据结构之deque双端队列

一、概念: 众所周知,数据结构是用来存储数据,deque也不例外,他是集结了队列和栈的性质而成的结构,他几乎拥有所有数据结构能有的操作,看似已经大杀四方,可实际情况如何呢,那就带者这…

ssm+vue的农业信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的农业信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

C语言第三十七弹---文件操作(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 文件操作 1、文件的随机读写 1.1、fseek 1.2、ftell 1.3、rewind 2、文件读取结束的判定 2.1、被错误使用的 feof 3、文件缓冲区 总结 1、文件的随机读写…

“轻松入门Electron:一步步构建梦想中的桌面软件

在数字化的浪潮中,桌面应用依旧占据着其独特而重要的位置,不论是在企业解决方案、专业工具软件还是个性化应用领域中都是如此。随着技术的演进,创建这些应用的过程已经变得更为简单和可行,尤其是随着Electron等框架的出现。Electr…

启动查看工具总结

启动目标:2s内优秀,2-5s普通,之后的都需要优化,热启动则是1.5s-2s内 1 看下大致串联启动流程: App 进程在 Fork 之后,需要首先执行 bindApplication Application 的环境创建好之后,就开始activ…

Dynamo——常用几何形体的创建与编辑(二)

上一次,我们简单整理了一些创建几何形体的节点用法,今天我们接着整理一些,几何形体的编辑方法。 一、坐标点的平移复制 [Point.Add] 使用节点 “Vector.ByCoordinates” 生成一个向量,将该向量连接到 “Point.Add” 节点的输入端 …

使用R语言进行聚类分析

一、样本数据描述 城镇居民人均消费支出水平包括食品、衣着、居住、生活用品及服务、通信、文教娱乐、医疗保健和其他用品及服务支出这八项指标来描述。表中列出了2016年我国分地区的城镇居民的人均消费支出的原始数据,数据来源于2017年的《中国统计年鉴》&#xf…

点云数据切片及使用threejs加载

测试点云数数据大小 2.94G cesium 加载: 数据处理:cesiumlab 点云切片->cesium 3Dtiles API 加载 threejs 加载 只支持 pcd 格式,故将 lsa 数据导入,在导出为了 pcd,在将数据直接转出 pcd 会直接闪退&#xff0…