Python pandas Series 轴向连接 concat 用法详解

顾星河
顾星河
发布时间:2026-10-11 | 3人浏览过
原创

本文介绍如何使用 pandas 的 concat 函数对 Series 数据进行轴向连接。通过示例演示了默认 axis=0 的连接方式,以及按 axis=1 连接生成 DataFrame 的情况。重点解析了不同轴向操作对结果类型的影响,并展示了索引重叠时的连接行为。

Series 数据轴向连接基础

在 pandas 中,concat 函数是实现数据轴向连接的核心工具。该操作的对象通常包括 Series,其默认行为是按照 axis=0 进行连接。理解这一机制对于处理不同维度的数据至关重要。

默认轴向连接 (axis=0)

当未指定轴向参数时,concat 默认沿索引方向(即 axis=0)将多个 Series 拼接在一起。这种操作的结果类型依然保持为 Series。

以下是具体的代码实现与结果分析:

from pandas import Series, DataFrame
import pandas as pd

# 创建三个具有不同索引的 Series
series1 = Series(range(2), index=['a', 'b'])
series2 = Series(range(3), index=['c', 'd', 'e'])
series3 = Series(range(2), index=['f', 'g'])

# 执行默认轴向连接
result = pd.concat([series1, series2, series3])
print(result)

运行上述代码后,输出结果如下:

a    0
b    1
c    0
d    1
e    2
f    0
g    1
dtype: int64

可以看到,连接后的数据保留了各自的索引标签,并按顺序排列。通过类型检查可以确认结果仍为 Series:

type(pd.concat([series1, series2, series3]))
# 输出: pandas.core.series.Series

横向连接 (axis=1) 与类型转换

如果指定 axis=1,concat 将尝试按列方向连接 Series。由于 Series 的索引不同,pandas 会自动对齐索引。对于不存在的索引值,结果中会填充 NaN。

这种操作的结果类型不再是 Series,而是转换为 DataFrame:

S1 = pd.concat([series1, series2, series3], axis=1)
print(S1)

输出结果展示了列对齐后的状态:

   0    1    2
a  0.0  NaN  NaN
b  1.0  NaN  NaN
c  NaN  0.0  NaN
d  NaN  1.0  NaN
e  NaN  2.0  NaN
f  NaN  NaN  0.0
g  NaN  NaN  1.0

验证其类型:

type(S1)
# 输出: pandas.core.frame.DataFrame

索引重叠时的连接行为

当连接的 Series 包含相同的索引标签时,concat 不会自动去重,而是将所有匹配的数据按顺序追加。这意味着如果索引存在重叠,结果中会出现重复的索引值。

修改 series3 的索引,使其与 series2 共享索引 'e':

# 修改 series3 的索引,使其包含 'e'
series3 = Series(range(2), index=['f', 'e'])

# 再次执行连接
result_overlap = pd.concat([series1, series2, series3])
print(result_overlap)

输出结果中,索引 'e' 出现了两次:

a    0
b    1
c    0
d    1
e    2  # 来自 series2
f    0
e    1  # 来自 series3
dtype: int64

注意事项

concat 操作仅执行单纯的数据连接,不涉及数据的逻辑整合或合并。如果需要基于键或索引进行数据整合,应使用 merge 方法。

以上就是 Python pandas 中 Series 数据轴向连接的详细内容,更多关于 Python pandas 数据处理的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表