Я пытаюсь посчитать количество последовательных положительных событий для каждого столбца в кадре данных панд.Решение, предоставляемое DSM здесь - Подсчет последовательных положительных значений в массиве Python хорошо работает для данной серии.
import pandas as pd
a = [0,1,0,1,1,0,0,0,1,1,0,1,0]
b = [0,0,0,0,1,1,0,1,1,1,0,0,0]
series = pd.Series(a)
consecutiveCount(series).values
array ([0, 1, 0, 1,2, 0, 0, 0, 1, 2, 0, 1, 0], dtype = int64)
Однако, когда я пытаюсь сделать это для кадра данных с несколькими столбцами, я получаюследующий.
df = pd.DataFrame({'a':a, 'b':b})
consecutiveCount(df)
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional
Если я повторяю каждый столбец, он работает, но очень медленно.Есть ли векторизованный способ обработки всего фрейма данных сразу?
Спасибо!