在名称不同但含义相同的字段上连接两个表

zdwk9cvp  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(268)

我有两个数据集, df1 有柱子的

Date Name Text Label
     John        1
     Jack        0
     Jim         1

(我只填写了我需要的字段)和 df2 有柱子的

NickName   Label
John         1
John         1 
Wes          0
Jim          0
Jim          0
Jim          0
Martin       0
``` `Name` 及 `Nickname` 指出同样的事情:但是,某些观察可能只包含在两列中的一列中。 `Label` 在里面 `df1` 不一样 `Label` 在里面 `df2` (悲伤的名字选择),所以我需要重新命名 `Label` 在里面 `df2` ,例如 `Index` . 我想要一份 `df2` 还有专栏 `Label` (来自 `df1` )为了这些价值观( `Nickname` )在 `df1` 对于那些不在 `df1` ,值为-1。预期输出应为

NickName Label Index
John 1 1
John 1 1
Wes 0 -1
Jim 0 0
Jim 0 0
Jim 0 0
Martin 0 0
...

请注意,所有名称都在 `df1` 在 `df2` . 对于重命名列,我没有问题(在pandas中使用rename),但我实际上需要了解如何合并两个数据集,以便获得预期输出中的三列和相应值。我不熟悉合并/加入,但我想说我需要类似的东西

df1.append(df2)

hs1ihplo

hs1ihplo1#

你可以用 pd.DataFrame.mergesuffixes 到列,以便您可以看到它们来自哪个原始 Dataframe 。

df1.merge(
    df2, 
    left_on='Name', 
    right_on='Nickname', 
    suffixes=('_left', '_right'), 
    how="outer",
)

相关问题