pd.concat,pd.merge测试记录

pandas四大数据合并函数:concat merge join merge_asof核心差异与避坑指南 在数据分析中,数据合并是构建分析宽表的基础操作,其本质是解决多源异构数据的对齐与集成问题。pandas提供concat、merge、join和merge_asof四类核心函数,分别对应物理堆叠、键值关联、索引快捷对齐和时间序列动态匹配等不同原理。其中,concat适用于无逻辑关系的批量拼接,merge是SQL式JOIN的通用实现,join专精于索引对齐场景,而merge_asof则通过有序查找机制实现‘截至某时刻’的时间对齐。这些技术共同支撑电商用户行为分析、金融行情匹配、IoT时序融合等关键应用场景。本文 阅读详情

总结,
concat和merge都是默认纵向拼接。
pd.concat默认取并集
并且索引保留原名称(即使会重复)
交集时保留相同的列,并集时不相同的列也保留,没有的index用Nan填充。
pd.merge默认取交集
交集时只保留index,column完全相同的。
并且索引会自动替换成从0开始的数字索引,不论是否重复。
可使用left_index,right_index=True来设置使用某一侧DataFrame中的索引作为连接键。纵向连接的时候设置两者都为True来保留原有index。

a=pd.DataFrame(np.arange(20).reshape(5,4))
a
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19

b=pd.DataFrame(np.arange(20,40).reshape(5,4))
b
0 1 2 3
0 20 21 22 23
1 24 25 26 27
2 28 29 30 31
3 32 33 34 35
4 36 37 38 39

pd.merge(a,b)
Empty DataFrame
Columns: [0, 1, 2, 3]
Index: []

pd.merge(a,b,how=‘outer’)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
5 20 21 22 23
6 24 25 26 27
7 28 29 30 31
8 32 33 34 35
9 36 37 38 39

pd.merge(a,b,how=‘inner’)
Empty DataFrame
Columns: [0, 1, 2, 3]
Index: []

pd.concat([a,b],how=‘inner’)
Traceback (most recent call last):
File “”, line 1, in
TypeError: concat() got an unexpected keyword argument ‘how’

pd.concat([a,b],join=‘outer’)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
0 20 21 22 23
1 24 25 26 27
2 28 29 30 31
3 32 33 34 35
4 36 37 38 39

pd.concat([a,b],join=‘inner’)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
0 20 21 22 23
1 24 25 26 27
2 28 29 30 31
3 32 33 34 35
4 36 37 38 39

b.columns=[2,3,4,5]
pd.concat([a,b])
0 1 2 3 4 5
0 0.0 1.0 2 3 NaN NaN
1 4.0 5.0 6 7 NaN NaN
2 8.0 9.0 10 11 NaN NaN
3 12.0 13.0 14 15 NaN NaN
4 16.0 17.0 18 19 NaN NaN
0 NaN NaN 20 21 22.0 23.0
1 NaN NaN 24 25 26.0 27.0
2 NaN NaN 28 29 30.0 31.0
3 NaN NaN 32 33 34.0 35.0
4 NaN NaN 36 37 38.0 39.0

pd.concat([a,b],join=‘inner’)
2 3
0 2 3
1 6 7
2 10 11
3 14 15
4 18 19
0 20 21
1 24 25
2 28 29
3 32 33
4 36 37

pd.merge(a,b)
Empty DataFrame
Columns: [0, 1, 2, 3, 4, 5]
Index: []

pd.merge(a,b,how=‘outer’)
0 1 2 3 4 5
0 0.0 1.0 2 3 NaN NaN
1 4.0 5.0 6 7 NaN NaN
2 8.0 9.0 10 11 NaN NaN
3 12.0 13.0 14 15 NaN NaN
4 16.0 17.0 18 19 NaN NaN
5 NaN NaN 20 21 22.0 23.0
6 NaN NaN 24 25 26.0 27.0
7 NaN NaN 28 29 30.0 31.0
8 NaN NaN 32 33 34.0 35.0
9 NaN NaN 36 37 38.0 39.0

a.index=[0,1,2,3,4]
a
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19

pd.merge(a,b,how=‘outer’)
0 1 2 3 4 5
0 0.0 1.0 2 3 NaN NaN
1 4.0 5.0 6 7 NaN NaN
2 8.0 9.0 10 11 NaN NaN
3 12.0 13.0 14 15 NaN NaN
4 16.0 17.0 18 19 NaN NaN
5 NaN NaN 20 21 22.0 23.0
6 NaN NaN 24 25 26.0 27.0
7 NaN NaN 28 29 30.0 31.0
8 NaN NaN 32 33 34.0 35.0
9 NaN NaN 36 37 38.0 39.0

pd.merge(a,b,how=‘outer’,left_index=True)
Traceback (most recent call last):
File “”, line 1, in
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 86, in merge
validate=validate,
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 620, in init
self._validate_specification()
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 1183, in _validate_specification
raise MergeError(“Must pass right_on or right_index=True”)
pandas.errors.MergeError: Must pass right_on or right_index=True

pd.merge(a,b,how=‘outer’,right_index=True)
Traceback (most recent call last):
File “”, line 1, in
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 86, in merge
validate=validate,
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 620, in init
self._validate_specification()
File “/share/data1/fengjie/software/miniconda3/envs/RGI_new/lib/python3.6/site-packages/pandas/core/reshape/merge.py”, line 1186, in _validate_specification
raise MergeError(“Must pass left_on or left_index=True”)
pandas.errors.MergeError: Must pass left_on or left_index=True

pd.merge(a,b,how=‘outer’,left_index=True,right_index=True)
0 1 2_x 3_x 2_y 3_y 4 5
0 0.0 1.0 2.0 3.0 NaN NaN NaN NaN
1 4.0 5.0 6.0 7.0 NaN NaN NaN NaN
2 8.0 9.0 10.0 11.0 NaN NaN NaN NaN
3 12.0 13.0 14.0 15.0 NaN NaN NaN NaN
4 16.0 17.0 18.0 19.0 NaN NaN NaN NaN
e NaN NaN NaN NaN 28.0 29.0 30.0 31.0
q NaN NaN NaN NaN 20.0 21.0 22.0 23.0
r NaN NaN NaN NaN 32.0 33.0 34.0 35.0
t NaN NaN NaN NaN 36.0 37.0 38.0 39.0
w NaN NaN NaN NaN 24.0 25.0 26.0 27.0

pd.merge(a,b,how=‘inner’,left_index=True,right_index=True)
Empty DataFrame
Columns: [0, 1, 2_x, 3_x, 2_y, 3_y, 4, 5]
Index: []

pd.merge(a,a)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19

Pandas合并三剑客:merge、concat、join核心差异与选型指南 在数据处理中,DataFrame合并是基础但高危操作,涉及关系匹配、轴向堆叠和索引对齐三类本质不同的需求。pd.merge()对应SQL JOIN语义,基于列值实现精确逻辑关联;pd.concat()执行物理级轴向拼接,适用于日志归档或特征矩阵堆叠;DataFrame.join()则专为已标准化索引设计,提供Cython加速的亚毫秒对齐能力。三者性能差异显著(实测join比merge快2.3倍),误用将导致NaN泛滥、内存爆炸或业务逻辑错误。掌握其底层原理与参数陷阱(如on/left_on区别、suffix 阅读详情

相关推荐

Pandas concat()深度解析:数据拼接的原理、陷阱与生产级实践

concat()是Pandas中实现DataFrame和Series集合级合并的核心函数,其本质是基于axis坐标系的内存内结构对齐操作,而非简单粘贴。它遵循集合论并集逻辑,区别于关系代数的merge连接;关键参数如axis、join、keys、ignore_index共同决定了索引拓扑重建、缺失值语义及数据血缘可追溯性。在日志追加、宽表构建、时序特征工程等高频场景中,错误使用易引发索引混乱、内存爆炸与NaN污染。掌握dtype兼容性校验、索引类型统一、sort=False列序控制等实操要点,是保障GB级数

快马扬鞭须努力! 369

Pandas合并操作四大函数:merge、join、concat、append核心区别与实战指南

在数据分析中,DataFrame合并是数据整合的基础操作,本质是解决多源数据的关联与堆叠问题。其原理围绕三种对齐机制展开:基于列值的横向关联(如SQL JOIN)、基于索引标签的对齐匹配、以及基于位置的纵向堆叠。技术价值体现在提升ETL效率、保障数据一致性、支撑机器学习特征工程等关键环节。典型应用场景包括用户行为日志聚合(concat)、用户主表与订单表关联(merge)、时间序列指标对齐(join)等。本文聚焦Pandas中merge()、join()、concat()、append()四大方法的本质差异

weixin_30245867的博客 452

Pandas DataFrame添加行数据:loc、concat与性能优化全解析

在数据处理与分析中,DataFrame作为核心的二维表格结构,其行操作是基础且高频的需求。从原理上讲,DataFrame底层基于NumPy数组按列存储,添加行涉及内存重新分配与数据复制,不当操作易引发性能瓶颈。理解索引机制与数据类型对齐是保证数据一致性的关键,这直接影响到后续的查询、合并等高级操作。在工程实践中,针对不同场景选择合适的方法至关重要:单行或少数行添加推荐使用语义清晰的loc访问器,它能精确控制索引并支持原地修改;而批量添加多行数据时,pd.concat凭借其底层数据块的高效合并机制,性能远超循

weixin_33788244的博客 359

pandas.errors.MergeError: Must pass right_on or right_index=True

这个错误是在试图使用pandas中的merge函数时出现的。它表明在合并两个DataFrame时,必须指定right_on或right_index参数。这意味着在合并两个DataFrame时,右边的DataFrame必须有一个指定的列或索引,用于与左边的DataFrame进行合并。 ...

weixin_42613360的博客 1317

Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model

启发式算法广泛用于处理复杂的搜索和优化问题。然而,启发式算法的手动设计通常非常耗费人力,需要丰富的工作经验和知识。本文提出了启发式算法的进化 (EoH),这是一种新颖的进化范式,它利用大型语言模型 (LLM) 和进化计算 (EC) 方法进行自动启发式设计 (AHD)。EoH 代表自然语言中的启发式概念,称为思想。然后由 LLM 将它们转换为可执行代码。进化搜索框架中思想和代码的演变使其在生成高性能启发式算法方面非常有效和高效。

weixin_43961909的博客 2162

手把手教你用STM32H743+FreeRTOS+LWIP搭建物联网网关(附完整工程)

本文详细介绍了如何使用STM32H743微控制器结合FreeRTOS实时操作系统和LWIP协议栈构建高性能物联网网关。内容涵盖硬件配置、FreeRTOS任务设计、LWIP协议栈优化及物联网协议集成,提供完整工程示例,助力开发者快速实现稳定可靠的网络通信枢纽。

weixin_42623010的博客 502

Must pass left_on or left_index=True什么意思

"Must pass left_on or left_index=True" 是 pandas 库中的错误提示,意思是在进行左连接操作时,必须指定左表的连接列或将左表的索引设为连接键,否则无法进行连接操作。即在调用 merge 函数时,需要传入 left_on 参数或将 left_index 设为 True。 ...

weixin_42601608的博客 1191

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

pandas的连接函数concat()函数

pandas的连接函数concat()函数 pd.concat(objs, axis``=``0``, join``=``'outer'``, join_axes``=``None``, ignore_index``=``False``, ``keys``=``None``, levels``=``None``, names``=``None``, verify_integrity``=``False``, ``copy``=``True``) axis:需要合并链接的轴,0是行,1是列 jo

liyong的博客 3203

银河麒麟服务器操作系统V10SP2实战:基于vsftpd构建多角色精细化权限FTP服务

本文详细介绍了在银河麒麟服务器操作系统V10SP2上基于vsftpd构建多角色精细化权限FTP服务的实战指南。从环境准备、核心配置到多角色用户权限管理,全面解析了FTP服务的部署与优化技巧,特别针对企业级应用场景提供了安全加固和故障排查方案。

weixin_30312563的博客 357

基于 WebGoat 平台的 SQL 注入攻击

基于 WebGoat 平台的 SQL 注入攻击

Labulongdong的博客 3522

成功解决TypeError: concat() got an unexpected keyword argument ‘join_axes‘

成功解决TypeError: concat() got an unexpected keyword argument 'join_axes' 目录 解决问题 解决思路 解决方法 解决问题 TypeError: concat() got an unexpected keyword argument 'join_axes' 解决思路 类型错误:concat()得到一个意外的关键字参数'join_axes' 解决方法 得到原因:"join_axes"

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 9487

华为MetaERP月结加速方案:并行关账技术深度解析

【摘要】华为MetaERP并行关账技术通过创新架构设计,将传统串行月结流程(8-12小时)优化为并行执行(2-4小时)。关键技术包括:1)基于DAG引擎的任务依赖分析,实现模块/子任务三级并行;2)Saga模式分布式事务保障数据一致性;3)动态资源分配算法提升CPU利用率至60-80%。实施效果显示月结时间缩短70%,成功率提升至99.8%,错误恢复时间减少75%。该方案为大型企业ERP系统提供了高效的月结加速方案,未来还将结合AI调度与混合云扩展持续优化。

金牌架构师 1441

使用pandas 按同一列名称合并,并解决concat() got an unexpected keyword argument ‘join_axes‘报错

新版本pandas已经删除了join_axes,所以习惯了两个dataframe按照同一列合并的话,可以改用merge: 以 df1的index 与 df2的index 作为合并的标志: pd.merge(df1,df2,how='left',left_index=True,right_on=True) 以df1 的某一列与df2的某一列作为合并的标志: pd.merge(df1,df2,how='outer',left_on=df1['df1的某一列'],right_on=cal_se['df2

呆萌的代Ma 1万+

MacBook Air老本重装系统

手里的这个本子型号是A1466,cpu i5,4G内存,硬盘ssd 120G。 重装系统可以在原系统上升级到更新版本,或者用U盘安装。 先确定,这个本子可以安装什么系统。 最权威的信息当然是apple的官网,地址:https://support.apple.com/zh-cn/HT211683 在“检查兼容性”中,可以依次检查每个系统兼容的硬件型号。Mojave是A1466能安装的最高版本。 确认兼容性后,下一步就是下载安装文件。还是这个页面稍下面一点可以找到。 这里告诉用户文件可以在什

bigwood99的博客 2万+

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

k8291121的博客 1818

pd.concat vs append vs merge:大数据合并性能对比

本文将分享一个实际测试项目,比较这三种方法在百万级数据合并时的性能差异。对于这种需要大量计算资源的测试任务,云端环境避免了本地电脑性能不足的问题。我们创建两个包含100万行数据的DataFrame,每个DataFrame包含几列随机生成的数值数据。整个测试过程中,平台的内存管理也很到位,即使处理百万行数据也没有出现卡顿。pd.concat方法的一个重要参数是axis,它决定了是按行(axis=0)还是按列(axis=1)进行合并。测试时我们记录每种方法处理相同规模数据所需的时间,并比较它们的内存占用情况。

SapphireOwl29的博客 940

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

merge vs concat:Pandas数据合并性能对比,90%的人都选错了方法!

掌握Pandas合并DataFrame(merge与concat)的正确选择,提升数据处理效率。详解两者适用场景:merge用于键值关联,concat擅长轴向拼接。对比性能差异,避免常见误区。方法清晰,效果立现,值得收藏。

codeink的博客 733

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Pandas合并三剑客:merge、concat、join核心原理与避坑指南

DataFrame合并是数据清洗与分析的基础操作,本质是解决多源数据的关联(merge)、堆叠(concat)与索引对接(join)问题。其底层原理分别对应关系数据库JOIN逻辑、数组轴向拼接机制和哈希索引快速查找。掌握三者差异可避免90%的NaN、行数爆炸与KeyError问题,显著提升ETL稳定性与分析口径准确性。典型应用场景包括用户行为宽表构建、多日销售数据聚合、时序指标对齐等。本文聚焦真实脏数据下的参数陷阱、类型校验与选型决策,助力工程师写出可解释、可复现、可维护的合并代码。

weixin_30616969的博客 485

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

揭秘Pandas数据合并难题:如何用merge和concat提升效率90%?

掌握Pandas合并DataFrame(merge与concat)高效技巧,解决数据拼接难题。详解merge的关联方式与concat的轴向选择,适用于多表整合与行列拼接场景,提升处理效率90%。方法实用,值得收藏。

InstrFun的博客 988

pandas拼接三函数区别:concat、merge、join选型避坑指南

在数据处理中,表间拼接是基础但高危操作,其本质是不同数据关系的工程实现:concat适用于同构数据的物理堆叠,merge面向主从关联的关系匹配,join则是索引对齐场景下的语法糖。理解三者底层原理——数组拼接、哈希连接与索引对齐——是避免静默错位、笛卡尔积污染和类型退化等隐性数据错误的前提。尤其在电商、日志、AB测试等典型场景中,函数误用直接导致GMV统计偏差、用户画像失真等业务级后果。本文聚焦pandas concat、merge、join的核心语义差异、参数陷阱与性能边界,提供可落地的决策框架。

weixin_33462167的博客 225

【Pandas数据处理必杀技】:彻底搞懂merge与concat的本质区别

掌握Python pandas merge 和 concat 区别,轻松应对数据合并难题。本文解析两者适用场景:merge用于键值连接,concat实现轴向拼接,详述核心参数与性能优势,助你高效处理复杂数据结构。数据清洗必看技巧,值得收藏。

CompiLume的博客 315

pandas---数据合并实战:concat、append、merge的抉择与场景化应用

本文深入探讨pandas中数据合并的三大方法concat、append和merge的实战应用与选择策略。通过电商数据分析等实际案例,详细解析各方法的适用场景、性能差异及优化技巧,帮助数据分析师高效处理多源数据合并任务,提升工作效率。

weixin_30263073的博客 192

Pandas合并三函数:merge、join、concat场景化选型指南

DataFrame合并是数据清洗与特征工程的基础操作,本质是基于键或索引的数据关系对齐。其核心原理涵盖哈希连接、索引二分查找和零拷贝堆叠三种机制,分别对应不同内存开销与性能边界。技术价值在于保障关联准确性、控制内存增长、维持业务语义一致性;典型应用场景包括SQL式主从关联(如用户+订单)、时间序列对齐(如股价+舆情)、多源日志聚合(如按天切分的点击流)。实际工程中,merge适用于列键精确匹配,join胜在索引对齐效率,concat专精无逻辑堆叠——三者不可互换,需依数据形态与业务约束决策。

weixin_33824385的博客 332

pandas.merge()本质:数据关系建模而非表格拼接

在数据分析工程中,merge操作本质上是基于键(key)的集合关系运算,而非简单的行或列拼接。其核心原理依赖于主键对齐、类型一致性和空值语义处理,技术价值在于保障多源数据关联的准确性与可解释性。典型应用场景包括用户宽表构建、订单溯源分析、数据质量审计及风控建模。理解merge的集合语义(inner/left/right/outer)和锚点机制(on参数),能有效规避幽灵行、静默失败与列名污染等高频问题。本文深入解析pandas.merge()的底层逻辑与生产级最佳实践。

weixin_33849215的博客 447

Pandas merge防错实战:从数据可信度到健壮连接

Pandas merge是数据分析中最常用却最易出错的核心操作,其本质并非简单行匹配,而是涉及键值语义、空值处理、类型一致性与业务逻辑对齐的综合性数据融合过程。理解merge底层的笛卡尔积过滤机制和NaN传播规则,是规避‘行数异常’‘内存爆炸’‘幽灵NaN’等典型问题的前提;而数据可信度(Data Trustworthiness)和防御性编程理念,则决定了合并结果能否支撑下游AI建模与关键决策。本文聚焦真实业务场景中的字符串键清洗、多源ID对齐、validate参数校验、indicator调试追踪等关键技术

weixin_33924770的博客 437
上一篇: Vim: Caught deadly signal SEGV Vim: Finished. Segmentation fault 【自己的解决过程】
下一篇: 2020-12-01
聪明的笨ZY
博客等级 码龄7年 3粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值