Вы можете попробовать использовать операции, связанные со строками, с разделением и счетом
Преобразовать столбец в строку -> с последующим разделением с помощью '1' и подсчетом максимального значения
df['result'] = df.label.astype(str).str.split('1').apply(lambda x: len(max(x)))
Out:
Id label result
0 1 1 0
1 2 11 0
2 3 101 1
3 4 10101 1
4 5 1001 2