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カウンタを起動し、別のFalse
インスタンスがflag
列に発生するまで1にそのカウンタを維持することです。これは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)
私は多くの場所でIカウンタをインクリメントしようとしているが、場合運...
'z ['flg']'は常に同じものを返します。あなたのループは影響を与えません。 –
また、 'x'を使って' z'を索引付けすることを意図していた場合、その長さではなく、 'z.keys()'を繰り返し処理します。そして、あなたはループの中に戻るべきではありません。あなたは 'i = i + 1'を実行してループの最後に戻るべきです – user1999728