Identify consecutive same values in Pandas Dataframe, with a Groupby

后端 未结 4 1674
说谎
说谎 2020-12-08 05:18

I have the following dataframe df:

data={\'id\':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2],
      \'value\':[2,2,3,2,2,2,3,3,3,3,1,4,1,1,1,4,4,1,1,1,1,1]}         


        
4条回答
  •  庸人自扰
    2020-12-08 06:13

    df=pd.DataFrame.from_dict(
            {'id':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2],
             'value':[2,2,3,2,2,2,3,3,3,3,1,4,1,1,1,4,4,1,1,1,1,1]})
    
    df2 = df.groupby((df['value'].shift() != df['value']).\
                    cumsum()).filter(lambda x: len(x) >= 3)
    
    df['flag'] = np.where(df.index.isin(df2.index),1,0)
    

提交回复
热议问题