在pandas数据框中保持运行的计数数量大于阈值

时间:2018-10-22 04:58:53

标签: python pandas

在下面的数据框中:

add $8, %rsi

我想保持 va 0 35 1 12 2 24 3 25 4 26 5 19 6 14 7 22 8 35 9 35 10 29 11 13 12 20 13 10 14 10 15 23 16 11 17 30 18 26 19 32 20 11 列值超过30的行数的连续计数。我当时在考虑使用va,但这似乎不合适

2 个答案:

答案 0 :(得分:2)

有2种解决方案-计数重置为new列,另一种解决方案未重置为new1

a = df['va'].gt(30)
b = a.cumsum()
df['new'] = b-b.mask(a).ffill().fillna(0).astype(int)
df['new1'] = b.where(a, 0)
print (df)
    va  new  new1
0   35    1     1
1   12    0     0
2   24    0     0
3   25    0     0
4   26    0     0
5   19    0     0
6   14    0     0
7   22    0     0
8   35    1     2
9   35    2     3
10  29    0     0
11  13    0     0
12  20    0     0
13  10    0     0
14  10    0     0
15  23    0     0
16  11    0     0
17  30    0     0
18  26    0     0
19  32    1     4
20  11    0     0

答案 1 :(得分:1)

要获取行数,可以执行以下操作:

your_counter = len(your_df[your_df['va'] > 30])

(“ your_df”显然应该替换为数据框的名称)

代码正在做的是创建一个新的数据框,只包含'va'值超过30的行。然后'len'函数将对行数进行计数。