Моя стратегия заключалась в том, чтобы найти, где разница в одном ряду с другим. (Учитывая, что Истины 1, а Ложь 0, конечно.)
Таким образом, Colm1 - Colm1.shift () представляет значение Delta, где 1 - это сдвиг от False до True, 0 без изменений и -1 - от True до False.
import pandas as pd
d = {'Col1': [True, True, True, False, False, False, True, True, True, True, False, False, False, True, True, False, False, True, ]}
df = pd.DataFrame(data=d)
df['delta'] = df['Col1'] - df['Col1'].shift()
BooleanShifts = df['delta'].value_counts()
print(BooleanShifts[-1])
После получения значения, считающегося в виде числа этих [1, 0, -1] значений, вы можете выбрать только -1 и получить количество раз, когда DF смещен к ложному значению из истинного значения. Я надеюсь, что это помогло ответить на ваш вопрос!