Чтобы правильно подготовить мои данные к задаче ML, мне нужно иметь возможность разбить мой исходный кадр данных на несколько меньших кадров данных.Я хочу получить все строки выше, включая строку, в которой значение для столбца 'BOOL' равно 1 - для каждого вхождения 1. т. Е. N фреймов данных, где n - это число вхождений, равное 1.
Примерданных:
df = pd.DataFrame({"USER_ID": ['001', '001', '001', '001', '001'],
'VALUE' : [1, 2, 3, 4, 5], "BOOL": [0, 1, 0, 1, 0]})
Ожидаемый вывод составляет 2 кадра данных, как показано:

И:

Я рассмотрел цикл for, использующий операторы if-else для добавления строк, но он крайне неэффективен для набора данных, который я использую.Ищите более питонический способ сделать это.