python之Pandas合并数据终极指南:pd.concat参数详解
一、核心参数快速预览
参数 | 可选值 | 默认值 | 作用描述 | 决策场景 |
---|---|---|---|---|
axis | 0/1 | 0 | 控制合并方向(行/列) | 纵向叠加 vs 横向合并 |
join | ‘inner’/‘outer’ | ‘outer’ | 控制索引对齐方式 | 保留全部数据 vs 仅共有部分 |
keys | 列表/元组 | None | 创建分层索引标识来源 | 需要追踪原始数据来源时 |
ignore_index | bool | False | 是否重置索引 | 需要连续索引时 |
二、axis参数深度解析(方向控制)
示例数据准备
import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1'],'B': ['B0', 'B1']
}, index=[0, 1])df2 = pd.DataFrame({'C': ['C2', 'C3'],'D': ['D2', 'D3']
}, index=[1, 2])
纵向堆叠(axis=0)
# 默认纵向合并
result = pd.concat([df1, df2], axis=0)
输出效果:
A B C D
0 A0 B0 NaN NaN
1 A1 B1 NaN NaN
1 NaN NaN C2 D2
2 NaN NaN C3 D3
横向合并(axis=1)
result = pd.concat([df1, df2], axis=1)
输出效果:
A B C D
0 A0 B0 NaN NaN
1 A1 B1 C2 D2
2 NaN NaN C3 D3
三、join参数行为对比(索引对齐)
场景数据准备
left = pd.DataFrame({'Key': ['K0', 'K1', 'K2'],'A': ['A0', 'A1', 'A2']
}, index=['X', 'Y', 'Z'])right = pd.DataFrame({'Key': ['K2', 'K3', 'K4'],'B': ['B2', 'B3', 'B4']
}, index=['Z', 'U', 'V']