温度値がゼロから非ゼロになるとインクリメントするカウンター用の新しい列をdfに作成したいと思います。
ロジックに使用しているループをアタッチしています。値はカウンター変数にありますが、次の表に示すように列に入れたいと思います。
prev_temp, counter, n= -300, 0,0
for index, row in df.iterrows():
if row.Tempo!=0 and prev_temp==0:
counter+=1
n+=1
prev_temp=rows.Tempo
elif row.Tempo==0 and prev_temp!= 0:
prev_temp=rows.Tempo
番号。 | 時間 | カウント |
---|---|---|
1 | 80.0 | 1 |
2 | 81.6 | 1 |
3 | 0.00 | 1 |
4 | 0.00 | 1 |
5 | 0.00 | 1 |
6 | 81.6 | 2 |
7 | 80.0 | 2 |
8 | 83.7 | 2 |
9 | 0.00 | 2 |
10 | 0.00 | 2 |
11 | 0.00 | 2 |
12 | 81.6 | 3 |
この表は期待される出力です!^
shift
&cumsum
をインクリメントする数値としてブール値を使用します。
s = df['Tempo '].shift().eq(0) & df['Tempo '].gt(0)
df['counter'] = s.cumsum() + 1
No. Tempo Count counter
0 1 80.0 1 1
1 2 81.6 1 1
2 3 0.0 1 1
3 4 0.0 1 1
4 5 0.0 1 1
5 6 81.6 2 2
6 7 80.0 2 2
7 8 83.7 2 2
8 9 0.0 2 2
9 10 0.0 2 2
10 11 0.0 2 2
11 12 81.6 3 3
print(s)
0 False
1 False
2 False
3 False
4 False
5 True # increment here.
6 False
7 False
8 False
9 False
10 False
11 True # increment here.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加