pandas concat操作
时间: 2025-01-13 19:02:15 浏览: 57
### 正确使用 Pandas `concat` 进行数据合并
#### 函数概述
Pandas 的 `concat()` 方法用于沿指定轴连接多个 DataFrame 或 Series 对象。此方法允许沿着现有索引或通过忽略原始索引来创建新的连续整数索引[^1]。
#### 基本语法
```python
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
```
- `objs`: 要连接的对象列表,可以是 DataFrame 或者 Series。
- `axis`: 合并的方向,默认为 0 (垂直堆叠),设置为 1 则水平扩展。
- `join`: 控制如何处理缺失值;'outer'(默认)表示取所有标签的联合集,'inner'则只保留交集部分。
- `ignore_index`: 如果设为 True,则不会考虑输入对象中的原有索引而是重新建立简单整型索引。
- `keys`: 当有层次化索引需求时可提供键作为最外层索引名称。
- `verify_integrity`: 是否检查最终结果是否存在重复索引。
#### 实际应用案例
##### 行方向上的合并(纵向)
当希望在一个现有的表格下方追加新记录时可以选择这种方式:
```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_vertical = pd.concat([df1, df2], axis=0)
print(result_vertical)
```
##### 列方向上的合并(横向)
如果想要向已有表格右侧增加额外字段,则应采用这种方法:
```python
# 添加一个新的Series到已有的DataFrame旁边
new_column = pd.Series(['C0', 'C1'])
result_horizontal = pd.concat([df1, new_column.rename('NewColumn')], axis=1)
print(result_horizontal)
```
#### 解决索引冲突问题
有时在执行 `concat` 操作之后可能会遇到索引不一致的情况。为了避免这种情况的发生,在调用该函数的时候可以通过设定参数来调整行为模式。比如设置 `ignore_index=True` 来让系统自动重置索引[^3]:
```python
# 防止因相同索引引起的数据覆盖等问题
safe_concatenation = pd.concat([df1, df2], ignore_index=True)
```
阅读全文
相关推荐

















