select A.a,b,c,nvl(B.d,0) from A left join ( select a,d from B) B on A.a=B.a用python的merge函数将上述SQL改写
时间: 2024-03-27 10:40:47 浏览: 48
用merge算法合并两个已排序的表
可以使用 pandas 库中的 `merge` 函数来实现上述 SQL 的功能。具体代码如下:
```
import pandas as pd
A = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
B = pd.DataFrame({'a': [1, 2], 'd': [10, 11]})
result = pd.merge(A, B, on='a', how='left').fillna({'d': 0})
result = result[['a', 'b', 'c', 'd']]
print(result)
```
输出结果为:
```
a b c d
0 1 4 7 10
1 2 5 8 11
2 3 6 9 0
```
其中,`pd.DataFrame` 函数用于创建数据框,`pd.merge` 函数用于合并数据框,`fillna` 函数用于填充缺失值,`[['a', 'b', 'c', 'd']]` 用于选择需要的列。
阅读全文