pd.merge 实例
时间: 2023-06-12 13:08:13 浏览: 151
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
假设有两个 DataFrame,一个是订单信息表(orders),一个是客户信息表(customers),它们分别如下所示:
```python
import pandas as pd
orders = pd.DataFrame({
'order_id': [1, 2, 3, 4, 5],
'customer_id': [101, 102, 102, 103, 104],
'order_date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'order_amount': [100, 200, 150, 300, 120]
})
customers = pd.DataFrame({
'customer_id': [101, 102, 103, 104, 105],
'customer_name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'],
'customer_email': ['alice@example.com', 'bob@example.com', 'charlie@example.com', 'david@example.com', 'emma@example.com']
})
```
现在我们想要通过 customer_id 把订单信息表和客户信息表合并起来,得到一个新的 DataFrame。可以使用 pd.merge() 函数实现:
```python
merged_df = pd.merge(orders, customers, on='customer_id')
print(merged_df)
```
输出结果如下:
```
order_id customer_id order_date order_amount customer_name customer_email
0 1 101 2021-01-01 100 Alice alice@example.com
1 2 102 2021-01-02 200 Bob bob@example.com
2 3 102 2021-01-03 150 Bob bob@example.com
3 4 103 2021-01-04 300 Charlie charlie@example.com
4 5 104 2021-01-05 120 David david@example.com
```
可以看到,通过 customer_id 把订单信息表和客户信息表合并起来,得到了一个新的 DataFrame,包含了订单信息和客户信息的所有字段,其中 customer_id 作为关键字进行了合并。如果两个 DataFrame 中的关键字不同,可以使用 left_on 和 right_on 参数指定左右 DataFrame 中的关键字。也可以使用参数 how 指定合并方式。具体用法可以参考 Pandas 官方文档。
阅读全文