Как сделать несколько типов объединений на 4 фреймах данных в pandas - PullRequest
3 голосов
/ 14 января 2020

У меня есть 4 кадра данных, к которым я применяю внутреннее соединение и левое соединение.

Я пытаюсь переписать запрос в 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 легко.

1 Ответ

2 голосов
/ 14 января 2020

Вы можете попробовать это:

(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 см. этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...