<p>我有两个pandas数据帧,<strong>A</strong>和<strong>B</strong><br/>
数据帧具有相同的索引和列,只是数据不同。
我有一个额外的数组<strong>X</strong>,它是索引的子集。在</p>
<p>我想要达到的目标:
得到的矩阵<strong>C</strong>也具有与<strong>A</strong>和<strong>B</strong>相同的索引和列。对于它的数据,它从dataframe<strong>A</strong>获取行条目,如果索引在<strong>X中,则从<strong>B</strong>获取行条目。在</p>
<p>我原以为会有一种Python式的方法来实现这一点,但他们没有编译。例如,我用<strong>a</strong>的索引创建一个<strong>C</strong>数据帧,然后尝试如下操作:</p>
<pre><code>C = C.apply(lambda i: A.ix[i.index] if i in X else B.ix[i.index])
</code></pre>
<p>我现在有一些东西可以用数学方法解决。因此,我基于<strong>X</strong>创建两个布尔数组,分别指定我想要从<strong>A</strong>和<strong>B</strong>的条目。然后我用这些矩阵乘以<strong>A</strong>和<strong>B</strong>然后做<strong>C</strong>=<strong>A</strong>+<strong>B</strong>。这似乎是一个很漫长的实现解决方案。我想要的是更简洁易读的东西。我目前的解决方案是:</p>
^{pr2}$