Python Pandas.concat函数解析与实战教程

发布于:2025-08-01 ⋅ 阅读:(14) ⋅ 点赞:(0)

Python Pandas.concat 函数解析与实战教程

引言

在数据科学和数据分析领域,Pandas 库是不可或缺的核心工具。其中,pandas.concat 函数作为数据合并与重塑的关键操作,扮演着至关重要的角色。它能够将多个 Pandas 对象(如 DataFrame 或 Series)沿着指定的轴进行拼接,是数据预处理流程中的常见步骤。

本文章旨在对 pandas.concat 函数的各个参数进行深入剖析,结合代码示例,展示其在不同场景下的应用。此外,还将探讨性能优化,并将其与 mergejoin 等其他合并方法进行深度比较,为在处理大规模数据集时的技术选型提供依据。

pandas.concat 核心功能与基本语法

pandas.concat 的核心功能是“堆叠”,即将多个数据结构按顺序拼接在一起。它可以沿着行(垂直堆叠)或列(水平堆叠)进行操作。

函数签名:

pandas.concat(
    objs,
    *,
    axis=0,
    join='outer',
    ignore_index=False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity=False,
    sort=False,
    copy=None, # 在 Pandas 3.0 中行为将发生重大变化
)

基本用法示例:
假设我们有两个简单的 DataFrame:

import pandas as pd

df1 = pd.DataFrame({
   
   'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({
   
   'A': ['A2', 'A3'], 'B': ['B2', 'B3']})

# 默认沿行拼接 (axis=0)
result = pd.concat([df1, df2])
print(result)

输出:

    A   B
0  A0  B0
1  A1  B1
0  A2  B2
1  A3  B3

参数详解与代码实例

1. objs

此参数是 concat 的核心,它接收一个序列或映射,通常是一个包含待拼接 DataFrame 或 Series 的列表。这是 concat 唯一的位置参数。

2. axis

该参数定义了拼接的方向。

  • axis=0 (默认): 沿行进行垂直堆叠。列名相同的列会合并,如果列名不完全匹配,不匹配的列会以 NaN 填充。
  • axis=1: 沿列进行水平堆叠。根据索引对齐,如果索引不完全匹配,不匹配的行会以 NaN 填充。

代码示例 (axis=1):

df3 = pd.DataFrame({
   
   'C': ['C0', 'C1'],