我尝试在python中使用pandas实现类似join的sql语句。在
我有这两个数据帧
df1:
id name
7 MPS
10 MCM
11 MIB
12 NEW-MCM-DEV
15 SAMS
16 NEW-MCM-VIT
df2:
^{pr2}$我想根据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上的name字段没有显示在输出上。我有什么办法可以做到这一点吗?在
您可以使用pandas函数
concat
。在有一些方法可以使用它,首先按照问题的提问方式使用:
在这种情况下,pandas将用NaN填充缺失的值。示例:
如果您喜欢忽略缺少值的行,可以使用:
^{pr2}$在这种情况下,数据帧之间的联接将作为SQL上的内部联接工作。示例:
如果您想保留一些数据帧结构,只需使用新列来完成此结构,可以使用:
在本例中,生成的dataframe将具有相同的
df1
行,但是有一些额外的列df4
。示例:更多信息可在this link上找到。在
相关问题 更多 >
编程相关推荐