我想創建一個列(「consec」),它將保持連續值在另一個(「二進制」)中的運行計數而不使用循環。這是所期望的結果將是什麼樣子:python熊貓 - 創建一個保持連續值運行計數的列
. binary consec
1 0 0
2 1 1
3 1 2
4 1 3
5 1 4
5 0 0
6 1 1
7 1 2
8 0 0
然而,這...
df['consec'][df['binary']==1] = df['consec'].shift(1) + df['binary']
結果在這...
. binary consec
0 1 NaN
1 1 1
2 1 1
3 0 0
4 1 1
5 0 0
6 1 1
7 1 1
8 1 1
9 0 0
我看其他的帖子在使用分組或排序,但不幸的是,我不明白這可以爲我工作。在此先感謝您的幫助。
你說‘連續’,而是0和1是不同的,你仍然增加櫃檯。所以感覺更像是你想在每個零點重置計數器。你想要發生什麼,連續有兩個零? – DSM
好點 - 差的描述,我確實想在每個零點重置計數器。因此df ['binary']中的連續0會在df ['consec']中生成0。 – MJS