【发布时间】:2020-08-04 06:53:09
【问题描述】:
我有一个这样的列表:
list_1 = [1, 2, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 1, 2, 1, 2, 3, 1, 1, 2, 3, 4, 1]
在此列表中,紧随4 之后的值大于或小于4 本身。更具体地说,较小的值始终是1。从那个1 到下一个1 的间隔值总是小于4。
如何查找和替换这样一个区间的值,例如如下:
list_2 = [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 0, 0, 0, nan, nan, nan, nan, nan, nan, nan, 0]
1, 2, 1 被替换,因为第一个 1 就在 4 之后并且小于 4。因此,从第一个 1 到第二个 1 的间隔被替换。
其他值不必是nan,我只是突出显示替换。需要明确的是,如果后面的值大于4,我们将跳过它。
【问题讨论】:
-
对于不统一的东西,你可能只需要做一个 for 循环
-
为什么
1, 2, 1会被替换?你能再举几个例子吗? 从那个 1 到下一个 1 的间隔值总是小于 4 意味着你替换了所有范围[0, 4),对吧? -
1, 2, 1被替换,因为第一个1紧随其后且小于4。因此,从第一个1到第二个1的间隔被替换。
标签: python pandas list numpy dataframe