Python pandas Series 轴向连接 concat 用法详解
本文介绍如何使用 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 数据处理的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









