如何计算df熊猫中连续出现的次数?

时间:2019-06-06 14:42:37

标签: python pandas df

我的列类似于A,我想创建另一个列B来计算成功的外观:

 A   B 
---|---
 1 | 0
 0 | 0
 0 | 0
 1 | 1
 0 | 1
 0 | 1
 1 | 2
 0 | 2 
 0 | 2
-1 | 0
 0 | 0
 0 | 0 
-1 |-1
 0 |-1
-1 |-2 
 0 |-2
 0 |-2
 1 | 0
 0 | 0
 1 | 1
 0 | 1
 1 | 2
 1 | 3
 0 | 3

1 个答案:

答案 0 :(得分:1)

在您的情况下,请使用ffillcumsum创建组密钥,然后groupby cumsum减去每个组的first项目

g=df.groupby(df.A.mask(df.A==0).ffill().diff().ne(0).cumsum()).A
g.cumsum()-g.transform('first')
#df['B']= g.cumsum()-g.transform('first')

Out[303]: 
0     0
1     0
2     0
3     1
4     1
5     1
6     2
7     2
8     2
9     0
10    0
11    0
12   -1
13   -1
14   -2
15   -2
16   -2
17    0
18    0
19    1
20    1
21    2
22    3
23    3
Name: A, dtype: int64
相关问题