<p>您可能应该将<code>df2</code>简化为没有重复键,然后告诉<code>pd.merge</code>使用<a href="http://pandas.pydata.org/pandas-docs/stable/merging.html#brief-primer-on-merge-methods-relational-algebra" rel="nofollow">union of keys from both frames</a>(使用<code>how:'outer'</code>):</p>
<pre><code>import pandas as pd
df1 = pd.DataFrame({ 'id':['D1','D2','D3','D4','D5','D6'],
'Field1':[ 12, 15, 11, 7, 55, 8.8]})
df2 = pd.DataFrame({'localid':['D1','D2','D3','D3','D9'],
'color':[['blue','grey'],
['yellow'],
['black','red','green'],
['white'],
['blue']]})
dfmerged = pd.merge(df1, df2, left_on='id', right_on='localid')
dfmerged2 = pd.merge(df1, df2, left_on='id', right_on='localid', how='outer')
</code></pre>
<p>结果是:</p>
<pre><code>>>> dfmerged2
Field1 id color localid
0 12.0 D1 [blue, grey] D1
1 15.0 D2 [yellow] D2
2 11.0 D3 [black, red, green] D3
3 11.0 D3 [white] D3
4 7.0 D4 NaN NaN
5 55.0 D5 NaN NaN
6 8.8 D6 NaN NaN
7 NaN NaN [blue] D9
</code></pre>