为了账号安全,请及时绑定邮箱和手机立即绑定

加入两个数据框并将所有列保留在熊猫中

加入两个数据框并将所有列保留在熊猫中

繁花如伊 2021-11-16 10:56:37
我正在尝试使用 Pandas 在 python 中执行类似 join 的 sql 语句。我有这两个数据框df1:id  name7   MPS10  MCM11  MIB12  NEW-MCM-DEV15  SAMS16  NEW-MCM-VITdf2: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 我想根据 id (df1) 和 main_id(df2) 加入这 2 个数据帧。我想要的输出是main_id numberOfNodes tier_id   tier_name               name7       2             29        MPS-Online              MPS7       0             247       Offline-b24-settle      MPS7       0             246       Offline-bank-data-feed  MPS 7       1             256       Offline-Citynet-Recon   MPS7       1             433       WAS                     MPS10      8             26        APP                     MCM10      2             296       BATCH                   MCM10      2             358       BBO                     MCM我尝试使用df2.merge(df1, left_on='main_id', right_on='id')并尝试使用df2.join(df1, on=['main_id'], how='outer')但没有工作,因为 df1 上的名称字段未显示在输出中。有什么办法可以实现这一目标吗?
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用熊猫功能concat

沿特定轴连接 Pandas 对象,沿其他轴使用可选的设置逻辑。

有一些方法可以使用它,首先以对问题提出的方式使用:

pd.concat([df1, df4], axis=1, sort=False)

在这种情况下,pandas 将用 NaN 填充缺失值。例子:

//img1.sycdn.imooc.com//61931e010001296d06210170.jpg

如果您更喜欢忽略缺失值的行,您可以使用:

pd.concat([df1, df4], axis=1, join='inner')

在这种情况下,数据帧之间的连接将作为 SQL 的内部连接工作。例子:

//img1.sycdn.imooc.com//61931e1000017a0f06230125.jpg

如果你想保留一些数据框结构只是用新列完成这个结构,你可以使用:

pd.concat([df1, df4], axis=1, join_axes=[df1.index])

在这种情况下,生成的数据帧将具有相同的行,df1但有一些额外的df4. 例子:

//img1.sycdn.imooc.com//61931e1d00011a0206240123.jpg

可以在此链接上找到更多信息。


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信