17370845950

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

在Python中处理表格数据时,pandas 是最常用的库。当我们需要将多个表格(如Excel、CSV文件或DataFrame)合并时,主要有两种核心方法:concat()merge()。它们适用于不同的场景,下面分别介绍它们的用法和特点。

1. 使用 concat() 进行纵向或横向拼接

concat() 适用于简单地把多个表格“堆叠”在一起,无论是上下拼接(纵向),还是左右拼接(横向)。

常见用途:

  • 多个结构相同的表格按行合并(比如不同月份的销售数据)
  • 将一个表格的列添加到另一个表格(按列合并)

基本语法:

pd.concat([df1, df2, df3], axis=0, ignore_index=False)

参数说明:

  • axis=0:沿行方向拼接(上下堆叠),结果行数增加
  • axis=1:沿列方向拼接(左右合并),结果列数增加
  • ignore_index=True:重新生成连续索引,避免重复索引问题

示例:

import pandas as pd

df1 = 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操作,根据一个或多个公共列将两个表格连接起来。

常见用途:

  • 根据用户ID将用户信息表和订单表合并
  • 匹配不同来源但有共同键的数据

基本语法:

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适合查关联。根据你的数据结构和目标选择合适的方法就行。不复杂但容易忽略细节,比如索引处理和连接方式。