我有两个pandas数据帧,A和B
数据帧具有相同的索引和列,只是数据不同。
我有一个额外的数组X,它是索引的子集。在
我想要达到的目标: 得到的矩阵C也具有与A和B相同的索引和列。对于它的数据,它从dataframeA获取行条目,如果索引在X中,则从B获取行条目。在
我原以为会有一种Python式的方法来实现这一点,但他们没有编译。例如,我用a的索引创建一个C数据帧,然后尝试如下操作:
C = C.apply(lambda i: A.ix[i.index] if i in X else B.ix[i.index])
我现在有一些东西可以用数学方法解决。因此,我基于X创建两个布尔数组,分别指定我想要从A和B的条目。然后我用这些矩阵乘以A和B然后做C=A+B。这似乎是一个很漫长的实现解决方案。我想要的是更简洁易读的东西。我目前的解决方案是:
^{pr2}$
做这样的事情:
基本上,您需要一个数据帧的副本,并根据匹配的索引从另一个数据帧中更新记录。在
如果要将A的完整副本备份到C中,可以针对X对A和B进行分区:
^{pr2}$考虑以下数据
^{} 获取第一个数据帧中的值并用第二个数据帧补充。但是在列表
^{pr2}$x
上使用loc
,我将A
限制为我想要的行,并合并B
的其余行。在其他选择
相关问题 更多 >
编程相关推荐