Подсчет количества последовательных более 2 вхождений - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок, и мне действительно нужна помощь по следующим вопросам:

Мне нужно сделать аналогично следующему, но на двумерном кадре данных Определение последовательных вхождений значения

Мне нужно использовать этот ответ, но для двумерного кадра данных. Мне нужно посчитать как минимум 2 последовательных по измерению столбцов. Вот пример кадра данных: 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

Вывод, который я ищу:

  0 1 2
0 3 5 4

Вместо столбца «последовательный» мне нужен новый вывод с именем «out_1_df» "для строки

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

, чтобы потом я мог сделать

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

Я попробовал следующее:

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)`  

Как я могу изменить это?

1 Ответ

1 голос
/ 20 апреля 2020

Попробуйте:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...