将第一次出现的x附加到列表中并中断循环.但是,如果y出现在x之前,请附加y的第一次出现,然后忽略y,直到x的第一次发生



我正在遍历多个数据帧df1['values']df2['values']等中的一列。['values']中的元素如下所示:

[3, 1, 3, 1, 1, 4, 4, 3, 3, 1, 2, 1, 1, 3, 4, 2, 3, 1, 1, 1]

我想循环遍历该列,并将第一次出现的4附加到一个新列表中,然后中断循环。然而,如果3出现在4之前,那么我想附加3的第一次出现,忽略3的任何后续出现,但继续循环,直到我出现4的第一次,然后中断循环。

因此,根据上面的列表:[3, 1, 3, 1, 1, 4, 4, 3, 3, 1, 2, 1, 1, 3, 4, 2, 3, 1, 1, 1]

所需输出为:[3,4]

但如果列表看起来像:[2, 1, 2, 1, 1, 4, 4, 3, 3, 1, 2, 1, 1, 3, 4, 2, 3, 1, 1, 1]

所需输出为:[4]

你可以这样做:

u = df['values'].unique()
u = u[u >= 3]
u = u[:(u == 4).argmax()+1]

输出(使用第一个列表(:

>>> u
array([3, 4])

输出(使用第二个列表(:

>>> u
array([4])

相关内容

  • 没有找到相关文章

最新更新