我有一个系列,(称之为x),它是根据以下逻辑生成的:
现在我要做的就是将x的元素(现在不同的值)放回到它们来自的位置
具体来说,这是x和y看起来的(子集):
>>> x
2 0.026610
5 0.128612
8 -0.208833
11 -0.148410
14 -0.110574
17 0.187002
>>> y
0 0.259825
1 0.171325
2 0.195750
3 0.290775
4 0.319075
5 0.278700
6 -0.036125
7 0.102525
8 -0.044000
9 -0.539275
10 -0.573875
11 -0.008500
12 0.141325
13 0.186975
14 0.074875
15 0.079925
16 0.224075
17 0.358475
18 -0.107125
我想要做的是根据索引将x的元素重新插入到y中。因此,例如,当我完成时,与index = 2(当前为0.195750)相关联的y值将被替换为与index = 2(0.026610)相关联的x值。
当然,我可以蛮力,但寻找更好的方法。
条件列表理解确实至少把事情放在了正确的位置,如下所示:
z = [y[i] if y.index[i] not in x.index else x[i] for i in range(len(y))]
但是,如果我执行上述操作,现在我有一个列表,并将转换回系列,从y应用索引。
zS = pd.Series(z, index = y.index)
能做到这一点。我只是想知道是否有一些内置的熊猫魔法可以让我更干净和/或更简单 - 直接进入系列赛。好像一定有这样的事情。
提前致谢。
答案 0 :(得分:1)
update
怎么样?请注意,与许多其他pandas方法不同,它可以在适当的位置运行。
y.update(x)