Chane
Chane

Reputation: 45

Counting number of consecutive more than 2 occurences

I am beginner, and I really need help on the following:

I need to do similar to the following but on a two dimensional dataframe Identifying consecutive occurrences of a value

I need to use this answer but for two dimensional dataframe. I need to count at least 2 consecuetive ones along the columns dimension. Here is a sample dataframe: my_df=

 0 1 2
0 1 0 1
1 0 1 0
2 1 1 1
3 0 0 1
4 0 1 0
5 1 1 0
6 1 1 1
7 1 0 1

The output I am looking for is:

  0 1 2
0 3 5 4

Instead of the column 'consecutive', I need a new output called "out_1_df" for line

df.Count.groupby((df.Count != df.Count.shift()).cumsum()).transform('size') * df.Count

So that later I can do

    threshold = 2; 
    out_2_df= (out_1_df > threshold).astype(int)

I tried the following:

out_1_df= my_df.groupby(( my_df != my_df.shift(axis=0)).cumsum(axis=0)) 
out_2_df =`(out_1_df > threshold).astype(int)`  

How can I modify this?

Upvotes: 0

Views: 162

Answers (1)

Georgina Skibinski
Georgina Skibinski

Reputation: 13407

Try:

import pandas as pd

df=pd.DataFrame({0:[1,0,1,0,0,1,1,1], 1:[0,1,1,0,1,1,1,0], 2: [1,0,1,1,0,0,1,1]})

out_2_df=((df.diff(axis=0).eq(0)|df.diff(periods=-1,axis=0).eq(0))&df.eq(1)).sum(axis=0)

>>> out_2_df

[3 5 4]

Upvotes: 1

Related Questions