python-3.x - 如何在 pandas 的 4 个数据帧上进行多种类型的连接
问题描述
我有 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 )
*
如何在熊猫中轻松做到这一点。
解决方案
你可以试试这个:
(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
请参阅此问题。
推荐阅读
- node.js - xml-flow NPM 包 - 意外的 XML 解析行为
- python - scikitlearn - HashingVectorizer 之后 MiniBatchKMeans 聚类期间的内存错误
- c++ - 是否可以针对使用的类设置重载 operator+ 的优先级?
- go - 在选择语句中进入频道 - 不返回
- python - Cuda 并行化内核
- macros - 生成函数的宏
- c++ - 在 C++ 中为类创建包并检查字符串的格式
- python - 使用训练数据的 Python 图像分类精度评估
- ms-access - 计算字段未显示值 - Ms.Access
- sql - 您可以将多位信息添加到数据库的一个部分中吗?