回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试图合并两个数据帧。框架不共享列(除了键)。所以合并应该只将右边的列添加到左边。但是,我也得到了额外的行。我不明白那两排是从哪里来的。在</p>
<p>如果我使用左_索引和右_索引,那么它就可以完美地工作了。但是,我不明白在键上的普通合并会像我的结果中那样有两个额外的行。谢谢</p>
<pre><code>dat1 = np.array([['Afghanistan', 2007, 'new_ep_m1524', 0],['Afghanistan', 2007, 'new_sn_m65', 0],
['Afghanistan', 2012, 'new_sn_f014', 1190],['Afghanistan', 2011, 'new_sn_f014', 851],
['Afghanistan', 2013, 'newrel_m014', 1705]], dtype=object)
dat2 = np.array([['ep', 'male', '15-24', 'Afghanistan', 2007],['sn', 'male', '65+', 'Afghanistan', 2007],
['sn', 'female', '0-14', 'Afghanistan', 2012],['sn', 'female', '0-14', 'Afghanistan', 2011],
['rel', 'male', '0-14', 'Afghanistan', 2013]], dtype=object)
left = pd.DataFrame(data=dat1, columns=['country', 'year', 'case_type', 'count'] )
rigt = pd.DataFrame(data=dat2, columns=['type', 'gender', 'age_group', 'country', 'year'])
display(left), display(right)
pd.merge(left,right, on=['country', 'year'], how='outer')
</code></pre>
<p>左
<a href="https://i.stack.imgur.com/ZJ1yI.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZJ1yI.jpg" alt="enter image description here"/></a></p>
<p>对吧
<a href="https://i.stack.imgur.com/iH6DQ.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iH6DQ.jpg" alt="enter image description here"/></a></p>
<p>结果
<a href="https://i.stack.imgur.com/g9lMg.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/g9lMg.jpg" alt="enter image description here"/></a></p>