Pandas合并列名相同的两份表格
时间: 2024-12-23 18:25:33 浏览: 3
详解pandas数据合并与重塑(pd.concat篇)
5星 · 资源好评率100%
当你有两个Pandas DataFrame,它们都有列名相同的字段并且你想将这两个DataFrame合并成一个,可以使用`concat()`、`join()`或者`merge()`函数。这里我们主要看`concat()`和`merge()`两个常用方法:
1. **使用`concat()`函数**:
如果你只是想简单地纵向堆叠(stacking)两份DataFrame,没有关联字段,可以使用`concat()`,设置`axis=0`表示沿行方向堆叠。例如:
```python
merged_df = pd.concat([df1, df2], ignore_index=True) # 默认忽略索引,防止重复
```
2. **使用`merge()`函数**:
如果两个DataFrame存在共同的列名,你可以基于这些列进行合并。这通常用于有联接条件的情况。例如,如果你想要基于共享的列创建一个笛卡尔积,可以这样做:
```python
merged_df = pd.merge(df1, df2, on=['common_column_name']) # 用共同的列名替换'common_column_name'
```
这会返回一个新DataFrame,其中每个组合都在`df1`和`df2`中有一个对应的行。如果没有共同的列,`merge`默认为内连接(inner join),只保留两个表中都有匹配的数据。
请注意,如果有列名冲突,合并前可能需要先重命名其中一个DataFrame的列,或者明确指定如何处理冲突(如使用`suffixes`参数)。
阅读全文