(df.foo != df.foo.shift()).cumsum()
df.groupby((df.foo != df.foo.shift()).cumsum()).foo.transform('size')
df.groupby((df.foo != df.foo.shift()).cumsum()).foo.transform('size').tail(1)
Как правильно измерить прогоны одних и тех же данных в кадре данных pandas