Я новичок, и мне действительно нужна помощь по следующим вопросам:
Мне нужно сделать аналогично следующему, но на двумерном кадре данных Определение последовательных вхождений значения
Мне нужно использовать этот ответ, но для двумерного кадра данных. Мне нужно посчитать как минимум 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)`
Как я могу изменить это?
Попробуйте:
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]