假设我有这个熊猫系列:
num = pd.Series([1,2,3,4,5,6,5,6,4,2,1,3])
我想做的是得到一个数字,比如说5,并返回之前发生的索引。因此,如果我使用元素 5,我应该得到 4,因为该元素出现在索引 4 和 6 中。现在我想为该系列的所有元素执行此操作,并且可以使用for循环轻松完成:
for idx,x in enumerate(num):
idx_prev = num[num == x].idxmax()
if(idx_prev < idx):
return idx_prev
但是,由于循环,此过程对于较长的串联长度消耗了太多时间。有没有办法以矢量化的形式实现同样的事情?输出应如下所示:
[NaN,NaN,NaN,NaN,NaN,NaN,4,5,3,1,0,2]
扬帆大鱼
浮云间
相关分类