我有 4 个数据框,我应用了 inner join 和 left joins 。
我正在尝试用 python 重写查询。我们如何在 pandas 代码中一次完成所有连接。
SQL
select hd.order_no,hd.order_id,hd.ship_country,User.LT_ID,User.DEST_REGION,Auto.m0_act_0400,Auto.m0_act_0500
FROM
header hd
INNER JOIN key ky ON (hd.order_no = ky.order_no)
LEFT JOIN User lt on (ky.lt_id = lt.lt_id)
LEFT JOIN Auto a on (hd.order_id = a.order_id )
*
如何在 Pandas 中轻松做到这一点。
最佳答案
你可以试试这个:
(header.merge(Key,
left_on='order_no',
right_on='ORDER_NO', # pandas/python cares about cases
how='inner') # how='inner' is default so can be skipped
.merge(User, on='LT_ID', how='left') # chaining merge
.merge(Auto, on='order_id', how='left')
[['order_no', 'order_id', 'ship_country', # select the columns
'LT_ID', 'DEST_REGION', 'm0_act_0400', 'm0_act_0500']]
)
详情
merge
见 this question .
关于python-3.x - 如何在 pandas 的 4 个数据帧上进行多种类型的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59726723/