计算熊猫列中连续负数的组

时间:2020-10-12 11:44:20

标签: python pandas numpy dataframe

我有一个如下所述的Pandas数据框:

sr_no  amount_credit_debit
  1     1000
  2     1234
  3    -2378
  4    -1290
  5     3000
  6    -4567
  8     5678
  9     1390
  10   -2346
  11   -2876
  12   -9065
  13   -6743

我必须对df以上的连续负数进行计数。

(-2378 and -1290) = First negative instance
(-4567) = Second negative instance
(-2346,-2876,-9065,-6743) = Third negative instance

输出是3,这就是我的答案。
我已经尝试了很多,但是却找不到正确的答案

1 个答案:

答案 0 :(得分:1)

首先,您可以找到负值的组号:

m = df['amount_credit_debit'].lt(0)
(m != m.shift())[m].cumsum()

输出:

2     1
3     1
5     2
8     3
9     3
10    3
11    3

然后找到最大组号:

(m != m.shift())[m].cumsum().max()

输出:

3