假設我有一個像這樣的Pandas系列布爾值。增加陣列中的連續正數組/
vals = pd.Series([0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1]).astype(bool)
>>> vals
0 False
1 False
2 False
3 True
4 True
5 True
6 True
7 False
8 False
9 True
10 True
11 False
12 True
13 True
14 True
dtype: bool
我想打開這個布爾系列爲一系列其中每個組的1的適當列舉,像這樣
0 0
1 0
2 0
3 1
4 1
5 1
6 1
7 0
8 0
9 2
10 2
11 0
12 3
13 3
14 3
我怎麼能這樣做有效地?
我已經能夠手動這樣做了,循環遍歷Python級別的序列並遞增,但是這顯然很慢。我正在尋找一個矢量化的解決方案 - 我看到this answer from unutbu涉及在NumPy中增加羣組的分裂,並試圖讓它與某種cumsum
一起工作,但目前爲止尚未成功。