python实现dataframe按特定列合并表
时间: 2023-06-29 12:17:59 浏览: 109
要按特定列合并表,可以使用 pandas 库的 merge() 函数。
假设我们有两个 DataFrame,一个是 orders,另一个是 customers,orders 中包含了订单信息,customers 中包含了顾客信息。我们可以按照顾客 ID 将这两个表合并在一起,得到一个包含了订单和顾客信息的新表。
示例代码如下:
```python
import pandas as pd
# 创建 orders 表
orders = pd.DataFrame({
'order_id': [1, 2, 3, 4],
'customer_id': ['A', 'B', 'C', 'D'],
'order_date': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04'],
'amount': [100, 200, 300, 400]
})
# 创建 customers 表
customers = pd.DataFrame({
'customer_id': ['A', 'B', 'C', 'D'],
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']
})
# 按照顾客 ID 将两个表合并
result = pd.merge(orders, customers, on='customer_id')
print(result)
```
输出结果如下:
```
order_id customer_id order_date amount name age gender
0 1 A 2022-01-01 100 Alice 25 F
1 2 B 2022-01-02 200 Bob 30 M
2 3 C 2022-01-03 300 Charlie 35 M
3 4 D 2022-01-04 400 David 40 M
```
在 merge() 函数中,我们指定了 on='customer_id',表示按照 customer_id 列进行合并。如果两个表中的列名不同,可以使用 left_on 和 right_on 参数指定左右两个表中的列名。另外,merge() 函数还支持不同的合并方式,如 inner、outer、left 和 right,可以根据实际需要进行选择。
阅读全文