【发布时间】:2019-07-17 06:28:34
【问题描述】:
我有一个有趣的案例。在FID2 列中,我有一些值,基于每个我想创建一个列表。 Ncircles 列确定列表。
例如:
- 如果
Ncircles中有值0,我想根据与[i]同一行中的FID2中的值创建一个列表,其中i等于FID2. - 如果
Ncircles中有值1,我想创建一个基于FID2中的值与[i-1, i, i +1]在同一行,其中i等于FID2。 - 如果
Ncircles中有值3,我想创建一个基于FID2中的值与[i-3, i-2, i -1 i, i+1, i+2, i +3]在同一行,其中i等于FID2。
这是一个df的例子:
FID2 Ncircles
0 50141 0
1 56188 1
2 75035 0
3 94937 3
最终列表可以写在同一个列表中。你对如何做到这一点有什么建议吗?
预期的输出将是一个新列表:
Newlist = [50141, 56187, 56188, 56188, 75035, 94934, 94935, 94936, 94937, 94938, 94939, 94940]
【问题讨论】:
-
提供预期输出
-
性能重要吗?
-
如果你指的是时间,那么没有。它不是。你的解决方案很棒,但如果我在
[i-2490,i-2489,i-2488,i-1,i+1,i+2488,i+2489,i+2490]案例中失败了 -
but if fails me- 你的意思是得到负数? -
没有。范围功能不起作用。我将该解决方案与预定义的函数和
if命令相结合,它可以工作!