我在正确递增for循环内的计数器变量时遇到问题。for循环内的递增计数器
我有一个名为flag
的变量,我想根据flag
中的值创建一个名为num
的新变量。
输入:
'flag'
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
TRUE
TRUE
所需的输出:
'flag' 'num'
FALSE 1
TRUE 1
TRUE 1
TRUE 1
FALSE 2
TRUE 2
FALSE 3
TRUE 3
TRUE 3
的目标是从1开始的Num柜台,并保持该计数器在1至另一False
例如在flag
列发生。这将持续到df结束。
我的代码:
def num(z):
i = 0
for x in range (0,len(z)):
if z['flg'] == False:
return i + 1
else:
return i
df['num']=df.apply(num, axis=1)
我试图增加在许多地方,我反击,但没有运气...
'z ['flg']'总是返回相同的东西。你的循环不会影响它。 –
另外,如果你打算使用'x'来索引'z',则遍历'z.keys()',而不是它的长度。而且你不应该在循环中返回。你应该做'i = i + 1'并在循环结束时返回 – user1999728