<p>也许性能不如@Sayandip Dutta answer,您可以尝试右连接(或左连接,取决于您在pd.merge中放置参数的顺序):</p>
<pre class="lang-py prettyprint-override"><code>In [4]: res = pd.merge(df1, df2, how='right', on='Words', suffixes=("_1", "_2"))
In [5]: res
Out[6]:
Words x_1 y_1 z_1 x_2 y_2 z_2
0 aardvark 0.999 0.999 0.999 0.111 0.111 0.111
1 abalone 0.888 0.888 0.888 0.222 0.222 0.222
2 abandon 0.777 0.777 0.777 0.333 0.333 0.333
3 aaaaahh NaN NaN NaN 0.199 0.929 0.993
4 zoo NaN NaN NaN 0.232 0.112 0.212
5 zoom NaN NaN NaN 0.842 0.620 0.344
6 zucchini NaN NaN NaN 0.945 0.265 0.745
</code></pre>
<p>然后你可以用x_2,y_2和z_2的值来<code>fillna</code>x_1,y_1,z_1</p>
<pre class="lang-py prettyprint-override"><code>In [8]: res.x_1.fillna(res.x_2, inplace=True)
In [8]: res.y_1.fillna(res.y_2, inplace=True)
In [9]: res.z_1.fillna(res.z_2, inplace=True)
In [10]: df_res = res[["Words", "x_1", "y_1", ,"z_1"]]
In [11]: df_res
Out[11]:
Words x_1 y_1 z_1
0 aardvark 0.999 0.999 0.999
1 abalone 0.888 0.888 0.888
2 abandon 0.777 0.777 0.777
3 aaaaahh 0.199 0.929 0.993
4 zoo 0.232 0.112 0.212
5 zoom 0.842 0.620 0.344
6 zucchini 0.945 0.265 0.745
</code></pre>