python-3.x - 如何在 pandas 的 4 个数据帧上进行多种类型的连接

标签 python-3.x pandas dataframe join

我有 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']]
)

详情mergethis question .

关于python-3.x - 如何在 pandas 的 4 个数据帧上进行多种类型的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59726723/

相关文章:

python - 矢量化迭代Python循环: c[i] = a[i] + b[i] * c[i-1]

python - 将命名元组高效插入 pandas 数据框中

python - 在 Python Pandas Dataframe 中动态添加列的数据处理

python - 在 python3 中获取一个列表并生成一个字符串,但转义双引号以便作为搜索参数传递给 azure 搜索

excel - 使用 StyleFrame 的 to_excel 方法将多个 python 数据帧复制到 Excel 中

python - FTP 下载卡住整个应用程序

Python find word可以用字符构建

python - 突出显示 Pandas 数据框中的特定单元格

Python-将DataFrame中的列值转换为不同的列

python - 用 Pandas 数据框中另一列中的值替换空列表