擅长:python、mysql、java
<p>在我看来,问题来自这一行<code>df2[['iapa_score']]</code>,因为如果您将数据帧限制为“iapa_score”列,“taxon”列将不再出现,因此出现“keyrerror”。您还应该在合并中使用参数<code>how='left'</code>,因为您只想保留来自df1的行</p>
<p>我自己创建了2个数据帧来重现您的情况,请看一下:</p>
<pre><code>df1 = pd.DataFrame({'taxon': ["spp1", "spp1", "spp3"]})
df2 = pd.DataFrame({'taxon': ["spp1", "spp2", "spp3", "spp4"], 'score': ["8", "7", "6", "17"]})
result = pd.merge(df1,
df2,
left_on=['taxon'],
right_on=['taxon'],
how='left')
print(result)
</code></pre>
<p>df1:</p>
<pre><code> taxon
0 spp1
1 spp1
2 spp3
</code></pre>
<p>df2:</p>
<pre><code> taxon score
0 spp1 8
1 spp2 7
2 spp3 6
3 spp4 17
</code></pre>
<p>结果:</p>
<pre><code> taxon score
0 spp1 8
1 spp1 8
2 spp3 6
</code></pre>