pandas把两个表数据按列头合并
时间: 2024-10-22 12:06:59 浏览: 42
在Pandas中,如果你想要将两个DataFrame按照列名进行合并,你可以使用`join`或`concat`方法,这取决于你希望得到的结果类型。这里有两个主要的合并方式:
1. **内联合并 (`inner join`)**:
- 当你想保留两个DataFrame中列名相同的列,并仅保留它们都有的行时,可以使用`pd.merge`。例如:
```python
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'B': ['b', 'd', 'e'], 'C': [4, 5, 6]})
merged_df = pd.merge(df1, df2, on='B') # 只保留'B'列值相等的行
```
2. **全连接 (`outer join`) 或者 `full merge`**:
- 如果想保留每个DataFrame的所有行,包括缺失值,可以使用`pd.merge`的`how='outer'`参数,或者直接用`concat`沿列方向合并:
```python
outer_merge = pd.concat([df1, df2], axis=1) # 沿着列方向合并,保留所有列
```
3. **左连接 (`left join`) 和右连接 (`right join`)**:
- 如果只想保留其中一个DataFrame的所有行,可以用`pd.merge`的`how`参数分别设置为`'left'`或`'right'`。
注意,在使用`concat`时,需要确保列名一致才能成功合并。如果不一致,可以先调整列名,然后再合并。
阅读全文