【发布时间】:2019-02-22 02:31:14
【问题描述】:
我正在尝试使用 pandas 在 python 中执行类似联接的 sql 语句。
我有这两个数据框
df1:
id name
7 MPS
10 MCM
11 MIB
12 NEW-MCM-DEV
15 SAMS
16 NEW-MCM-VIT
df2:
main_id numberOfNodes tier_id tier_name
7 2 29 MPS-Online
7 0 247 Offline-b24-settle
7 0 246 Offline-bank-data-feed
7 1 256 Offline-Citynet-Recon
7 1 433 WAS
10 8 26 APP
10 2 296 BATCH
10 2 358 BBO
我想加入这 2 个基于 id (df1) 和 main_id(df2) 的数据帧。
我想要的输出是
main_id numberOfNodes tier_id tier_name name
7 2 29 MPS-Online MPS
7 0 247 Offline-b24-settle MPS
7 0 246 Offline-bank-data-feed MPS
7 1 256 Offline-Citynet-Recon MPS
7 1 433 WAS MPS
10 8 26 APP MCM
10 2 296 BATCH MCM
10 2 358 BBO MCM
我尝试过使用
df2.merge(df1, left_on='main_id', right_on='id')
并尝试使用
df2.join(df1, on=['main_id'], how='outer')
但没有任何作用,因为 df1 上的名称字段未显示在输出中。有什么办法可以实现吗?
【问题讨论】:
-
df2.merge(df1, left_on='main_id', right_on='id') 的输出是什么,我认为它应该可以工作
-
我真傻,我忘了将结果保存到变量中。它工作正常