У меня есть DataFrame, например:
column1 column2 column3
0 a 2 2
1 b 1 0
2 c 3 2
Где значение в column3 обязательно <= значение в column2 </p>
Я хочу расширить df до уровня ниже, основываясь на следующих правилах:
column1 column2 column3
0 a 1 1
1 a 1 1
2 b 1 0
3 c 1 1
4 c 1 1
5 c 1 0
- каждая строка раскрывается в число строк, равное ее значению в column2
- значение column3 для расширенных строк равно 1, если ее индекс (относительнок его столбцу column1) меньше, чем значение исходной нерасширенной строки в column3.
Например: посмотрите, что строка с column1 = a была расширена до 2 строк, поскольку ее значение column2 было равно 2,и обе результирующие строки раскрытия имеют значение 1 в column3, потому что 0 <2 и 1 <2. </p>
Обратите внимание, что строка с column1 = c была расширена на 3 строки, потому что ее значение column2 было равно 3,однако, только первые 2 результирующих строки раскрытия имеют значение 1 в column3 (опять же: 0 <2 и 1 <2), однако, третья развернутая строка получает значение 0 для column3, потому что (да, да, да, этоне математика для детского сада) не верно, что 2 <2. </p>
Какую функцию я могу использовать на кадре данных, таком как первый, для получения результата, похожего на второй?