Python:基于索引替换修改的Pandas系列元素

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),它是根据以下逻辑生成的:

  • 从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.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)
    

    没有比这更圆滑的了。谢谢