<p><code>df3 = pd.merge(df2, df1, on='tmp', how='outer')</code>应该给你想要的。如果您熟悉这个术语,这相当于SQL中的完全外部联接。你知道吗</p>
<p>这样做的目的是将两个数据帧df1和df2合并在一起,使得<code>df3.tmp</code>列等于df1.tmp和df2.tmp中的值的并集(即,如果执行<code>df1.tmp + df2.tmp</code>,将得到的值的列表)。因此,df2中具有<code>df2.tmp == 1</code>的任何行都将从df1获取信息,其中<code>df1.tmp == 1</code>如果您希望同时包含df1和df2中的所有数据,这将起作用。这样,如果您在df1中有一列的值在'tmp'中不在df2中,那么您的新dataframe将为列a、B、C、D、E和df1中的数据提供'NaN'值,但是合并中不会丢失任何数据。你知道吗</p>
<p>如果df1=</p>
<pre><code>pop syspop ct cod msg tmp
0 0.0 0.0 30.0 200.0 0.1642 1.0
1 0.0 0.0 0.0 0.0 0.0000 3.0`
</code></pre>
<p>则df3=</p>
<pre><code> a b c d e tmp pop syspop ct cod msg
0 0.0 0.0 38.0 200.0 0.1642 1.0 0.0 0.0 30.0 200.0 0.1642
1 0.0 0.0 38.0 200.0 0.1642 1.0 0.0 0.0 30.0 200.0 0.1642
2 0.0 0.0 38.0 200.0 0.1642 1.0 0.0 0.0 30.0 200.0 0.1642
3 0.0 0.0 38.0 200.0 0.1642 1.0 0.0 0.0 30.0 200.0 0.1642
4 0.0 0.0 0.0 0.0 0.0000 2.0 NaN NaN NaN NaN NaN
</code></pre>
<p>如果您想要df1和df2的其他组合(例如,您不关心df1中不在df2中的任何值),您可以更改“how”参数。有关更多信息,请参阅此处的熊猫文档:
<a href="http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational-algebra" rel="nofollow noreferrer">http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational-algebra</a></p>