合并多个dataframe并以某个关键词对齐
时间: 2023-11-18 11:54:56 浏览: 139
pandas DataFrame实现几列数据合并成为新的一列方法
合并多个DataFrame可以使用`pandas`库中的`merge`函数,而以关键词对齐可以使用`join`函数。
首先,假设我们有3个DataFrame:df1、df2和df3,它们的结构类似,如下:
```
df1:
id value1
0 1 1
1 2 2
2 3 3
df2:
id value2
0 1 4
1 2 5
2 4 6
df3:
id value3
0 1 7
1 3 8
2 4 9
```
现在我们想要将这三个DataFrame合并成一个,以id为关键词对齐。我们可以使用`merge`函数先将df1和df2合并,再将合并后的结果与df3合并,如下所示:
```python
merged_df = pd.merge(pd.merge(df1, df2, on='id', how='outer'), df3, on='id', how='outer')
```
这里使用了`on`参数指定了合并关键词id,使用`how`参数指定了合并方式为outer,表示保留所有行。合并后的结果如下:
```
id value1 value2 value3
0 1 1.0 4.0 7.0
1 2 2.0 5.0 NaN
2 3 3.0 NaN 8.0
3 4 NaN 6.0 9.0
```
我们可以使用`join`函数以关键词对齐,如下所示:
```python
result = merged_df.set_index('id').join(other_df.set_index('id'))
```
这里使用了`set_index`函数将id列设置为索引,然后使用`join`函数将其他DataFrame以id为索引对齐。这里的`other_df`可以替换成其他需要对齐的DataFrame。最终结果如下:
```
value1 value2 value3 other_value
id
1 1.0 4.0 7.0 0.1
2 2.0 5.0 NaN NaN
3 3.0 NaN 8.0 0.3
4 NaN 6.0 9.0 0.4
```
注意:如果有多个DataFrame需要对齐,可以使用多次`join`函数。
阅读全文