<p><strong><em>设置</em></strong></p>
<pre><code>import pandas as pd
from StringIO import StringIO
csv = """Name UniqueID Status
Apple 1121 Full
Orange 1122 Eaten
Apple 1123 Rotten"""
csv1 = """Name UniqueID Status
Apple 1121 Eaten
Orange 1122 Eaten
Pear 1233 Wiggly """
</code></pre>
<p>选项1
<code>set_index</code>+<code>combine_first</code>+<code>reduce</code></p>
<pre><code>def fruit_status1(f):
return pd.read_csv(StringIO(f), delim_whitespace=True,
index_col=['UniqueID', 'Status'])
def update1(d1, d2):
return d2.combine_first(d1)
reduce(update1, [fruit_status1(f) for f in [csv, csv1]])
</code></pre>
<p><a href="https://i.stack.imgur.com/TGIDG.png" rel="nofollow"><img src="https://i.stack.imgur.com/TGIDG.png" alt="enter image description here"/></a></p>
<p><strong><em>选项2</em></strong><br/>
<code>pd.concat</code>+<code>drop_duplicates</code></p>
<pre><code>def fruit_status2(f):
return pd.read_csv(StringIO(f), delim_whitespace=True)
pd.concat([fruit_status2(f) for f in [csv, csv1]]) \
.drop_duplicates(subset=['UniqueID', 'Status'])
</code></pre>
<p><a href="https://i.stack.imgur.com/NoI8w.png" rel="nofollow"><img src="https://i.stack.imgur.com/NoI8w.png" alt="enter image description here"/></a></p>