Non*_*per 6 python arrays numpy list pandas
我有一个这样的清单:
list_1 = [0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1]
Run Code Online (Sandbox Code Playgroud)
如何计算此列表中1
和的值块的大小0
?结果列表将如下所示:
list_2 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 1, 1]
Run Code Online (Sandbox Code Playgroud)
cumsum
与diff
然后尝试transform
count
s = pd.Series(list_1)
s.groupby(s.diff().ne(0).cumsum()).transform('count')
Out[91]:
0 1
1 2
2 2
3 3
4 3
5 3
6 4
7 4
8 4
9 4
10 1
11 1
dtype: int64
Run Code Online (Sandbox Code Playgroud)