擅长:python、mysql、java
<p>由于您希望在索引和列的组合上进行合并,您可以将它们全部添加到索引中,或者在合并之前<code>reset_index</code>。我们还将把<code>val3</code>列分配给df2,这样它就合并了。在</p>
<pre><code>(df1.reset_index().merge(
df2.reset_index().assign(val3 = 1), on=['index', 'val2'], how='left')
.set_index('index'))
</code></pre>
<p>输出:</p>
^{pr2}$
<hr/>
<p>如果<code>'index'</code>只是一个列而不是索引,那么只需指定两个键进行合并就可以了。在</p>
<pre><code>df1.merge(df2.assign(val3 = 1), on=['index', 'val2'], how='left')
</code></pre>
<p>输出:</p>
<pre><code> index val1 val2 val3
0 1 str1 abc1 1.0
1 2 str2 abc2 1.0
2 3 str3 abc3 NaN
3 4 str4 abc9 NaN
4 5 str5 abc4 1.0
</code></pre>