2个df拼接有相同列名
时间: 2024-10-27 18:03:26 浏览: 29
当两个Pandas DataFrame对象需要拼接在一起,并且它们含有相同的列名时,通常会遇到“列重叠”(Column Overlap)的问题。在这种情况下,有两种常见的操作方式:
1. **保留所有列**(默认行为):Pandas的`concat()`函数或`pd.DataFrame.append()`默认会将所有列都合并到结果DataFrame中,对于重复列名,可能会自动添加下标前缀如`column_0`, `column_1`等区分。
```python
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'B': [5, 6], 'C': [7, 8]})
result = pd.concat([df1, df2]) # 或 df1.append(df2)
```
结果:
```
A B_0 B_1 C
1 3 5 7
2 4 6 8
```
2. **指定如何处理重复列**:可以设置`join`参数,比如`how='outer'`会让每个数据框的每一行与另一数据框的所有列连接,保持原样;或者`how='inner'`只保留两数据框都有对应值的列。
```python
result = pd.concat([df1, df2], join='inner') # 只保留共同的列
```
结果:
```
A B
1 3
2 4
```
阅读全文