# 机器学习基础~05.数据集成



## 数据合并

数据合并将行或者列相同的数据进行合并，通过`axis`参数指定根据行还是列进行合并。

- `axis=0`，数据按照列进行堆放，要求多组数据的列数相同。

![](https://img.papergate.top:5000/i/2025/05/682595e51b70f.webp)

- `axis=1`，数据按照行进行堆放，要求多组数据的行数相同。

![](https://img.papergate.top:5000/i/2025/05/682595ec26419.webp)


```python
# 使用 concat() 函数沿着行方向合并数据
concatenated_data = pd.concat([data1, data2], ignore_index=True)
# 打印合并后的数据
print(concatenated_data)
```

## 数据连接

数据连接取相同的`key`进行合并，通过参数`how`指定当两者的`key`不匹配时的处理方式。

```python
import pandas as pd
df1=pd.DataFrame({'key':[ 'a','e','b','a','c','a','b'], 'data1':range(7)})
df2=pd.DataFrame({'key':['a','b','c','f'] ,'data2':range(4)})

#根据key合并df1、dF2，取交集
result1 = pd.merge(df1,df2,on='key',how="inner")

#根据key合并df1、df2，取并集
result2 = pd.merge(df1,df2,on='key',how="outer")

#根据key合并df1、df2，拼接df2对象
result3 = pd .merge(df2,df1,on='key',how="left")
```


---

> 作者: Aphros  
> URL: https://blog.papergate.top/posts/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80~05.%E6%95%B0%E6%8D%AE%E9%9B%86%E6%88%90/  

