pd.concat([df1, df2], axis=0)和axis=1分别实现什么操作?
时间: 2025-03-23 20:03:36 浏览: 29
### pandas 中 `concat` 函数在不同 `axis` 参数下的作用
#### 轴向定义
在 Pandas 的操作中,`axis=0` 表示沿着 **行方向** 进行操作,而 `axis=1` 则表示沿着 **列方向** 进行操作。对于 `pd.concat()` 函数而言,这两个参数决定了如何将多个 DataFrame 或 Series 合并在一起。
---
#### 当 `axis=0` 时的作用
当 `axis=0` 时,`pd.concat()` 函数会按照垂直方向(即沿行的方向)堆叠输入的数据对象。这意味着它会在现有数据的基础上向下追加新行。为了成功完成这一操作,参与合并的各个数据对象需要具有相同的列结构或者可以通过某些方式对齐其列名[^1]。
代码示例:
```python
import pandas as pd
# 创建两个简单的DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
result_axis_0 = pd.concat([df1, df2], axis=0)
print(result_axis_0)
```
输出结果如下所示:
```
A B
0 A0 B0
1 A1 B1
0 A2 B2
1 A3 B3
```
注意,在这种情况下,默认不会重置索引;如果希望获得连续整数形式的新索引,则可以传递额外参数 `ignore_index=True` 来实现这一点[^3]。
---
#### 当 `axis=1` 时的作用
当 `axis=1` 时,`pd.concat()` 函数会水平扩展数据集——即将新的数据作为附加列加入到原始表格右侧。此时要求各组成部分之间共享一致性的维度通常是基于它们各自的索引来匹配对应位置上的值[^2]。
需要注意的是,如果存在不兼容的情况比如长度差异等问题可能会引发错误提示或者是填充NaN来填补空白区域[^4]。
实例演示:
```python
# 继续使用上面创建好的df1和df2
result_axis_1 = pd.concat([df1, df2], axis=1)
print(result_axis_1)
```
得到的结果将是这样的布局:
```
A B A B
0 A0 B0 A2 B2
1 A1 B1 A3 B3
```
可以看到这里出现了重复标签的现象,这通常不是我们想要的效果,因此实际应用当中可能还需要进一步调整如重命名列等方式加以优化。
---
阅读全文
相关推荐


















