Python:基于索引替换修改的Pandas系列元素
我有一个系列,(称之为x),它是根据以下逻辑生成的:Python:基于索引替换修改的Pandas系列元素,python,pandas,Python,Pandas,我有一个系列,(称之为x),它是根据以下逻辑生成的: 从y中提取x(x是y的子集,两者都是序列) 对x的元素执行许多操作 现在我要做的是把x的元素(现在不同的值)放回它们在y中的来源 具体来说,以下是x和y的(子集)外观: >>> x 2 0.026610 5 0.128612 8 -0.208833 11 -0.148410 14 -0.110574 17 0.187002 >>> y 0 0
>>> 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的索引,将x的元素重新插入y中。因此,例如,当我完成时,与索引=2(当前为0.195750)关联的y值将替换为与索引=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)
我能做到。我只是想知道是否有一些内置的熊猫魔法可以让我更干净和/或干脆直接进入一个系列。看来一定有这样的事
提前谢谢 更新
怎么样。请注意,与许多其他方法不同,它是就地操作的
y.update(x)
没有比这更圆滑的了。谢谢