你能帮我加入两个DataFrames吗?
我有两个DataFrame .
DF1:
index val1 val2
--------------------
1 str1 abc1
2 str2 abc2
3 str3 abc3
4 str4 abc9
5 str5 abc4
DF2:
index val2
------------
1 abc1
2 abc2
4 abc3
5 abc4
9 abc5
我需要基于前两个创建一个DataFrame,左边连接两列 . 列索引和val2在两个DataFrame中具有相同的名称 . df3的结果应如下所示:
index val1 val2 val3
----------------------------
1 str1 abc1 1
2 str2 abc2 1
3 str3 abc3 NaN
4 str4 abc9 NaN
5 str5 abc4 1
如果df1中的索引与df2中的val2相同,则应删除df2中不存在的df2索引,然后将1添加到新列val3中,否则:NaN .
非常感谢提前!
3 回答
您可以尝试使用
join
(默认为左侧)和rsuffix
,以便使用后缀重命名df2的列名 . 然后,使用np.where
检查列值是否匹配并为val3
列分配值 .结果:
这是一种方式 . 如下所示,我建议您使用布尔而不是
float
来表示val3
,就像系列所代表的那样 .由于您希望合并索引和列的组合,您可以将它们全部添加到索引,或者在合并之前添加
reset_index
. 我们还将val3
列分配给df2,以便它被合并 .输出:
如果
'index'
只是一个列而不是索引,那么就像指定要合并的两个键一样简单 .输出: