concat()用于简单拼接,merge()用于关联合并。concat按轴方向堆叠或合并数据,适用于结构相同表格的上下或左右拼接;merge基于公共列实现类似SQL的JOIN操作,支持内连接、外连接等模式,适用于不同表间通过键列关联匹配数据。

在Python中处理表格数据时,pandas 是最常用的库。当我们需要将多个表格(如Excel、CSV文件或DataFrame)合并时,主要有两种核心方法:concat() 和 merge()。它们适用于不同的场景,下面分别介绍它们的用法和特点。
1. 使用 concat() 进行纵向或横向拼接
concat() 适用于简单地把多个表格“堆叠”在一起,无论是上下拼接(纵向),还是左右拼接(横向)。
常见用途:
- 多个结构相同的表格按行合并(比如不同月份的销售数据)
- 将一个表格的列添加到另一个表格(按列合并)
基本语法:
立即学习“Python免费学习笔记(深入)”;
pd.concat([df1, df2, df3], axis=0, ignore_index=False)
参数说明:
- axis=0:沿行方向拼接(上下堆叠),结果行数增加
- axis=1:沿列方向拼接(左右合并),结果列数增加
- ignore_index=True:重新生成连续索引,避免重复索引问题
示例:
import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})
result = pd.concat([df1, df2], ignore_index=True)
结果是4行2列,上下拼接
2. 使用 merge() 基于关键列进行关联合并
merge() 类似于SQL中的JOIN操作,根据一个或多个公共列将两个表格连接起来。
bootstrap-carousel-touch-slider是一款基于Bootstrap支持移动端的响应式轮播图效果。该轮播图特效可以使用手指进行滑动切换。并且它和animate.css结合,可以制作出各种炫酷的文字动画效果。 使用方法 在页面中引入bootstrap相关文件,font-awesome.css字体图标文件,animate.min.css动画文件,以及jquery.touchS
常见用途:
- 根据用户ID将用户信息表和订单表合并
- 匹配不同来源但有共同键的数据
基本语法:
立即学习“Python免费学习笔记(深入)”;
pd.merge(df_left, df_right, on='key', how='inner')
关键参数:
- on:指定用于连接的列名(两表都有)
- how:合并方式,包括 'inner'、'outer'、'left'、'right'
- left_on / right_on:当左右表的键列名不同时使用
示例:
user = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']})
order = pd.DataFrame({'id': [1, 2], 'amount': [100, 200]})
result = pd.merge(user, order, on='id', how='inner')
按id列合并,保留共有的记录
基本上就这些。concat适合拼积木,merge适合查关联。根据你的数据结构和目标选择合适的方法就行。不复杂但容易忽略细节,比如索引处理和连接方式。










