Предположим, у меня есть DataFrame со следующими четырьмя колоннами:Обновление Dataframe со следующим непустым значением в столбце или значением prev в столбце для ключа.
Employee Action Updated on Salaried on
1 emailed 2015-07-01 2015-07-12
1 worked 2015-07-03 null
1 played 2015-07-06 2015-07-28
1 finished 2015-07-07 null
2 food 2015-07-09 null
2 cool 2015-07-11 2015-07-10
Ответ должен быть:
Employee Action Updated on Salaried on
1 emailed 2015-07-01 2015-07-12
1 worked 2015-07-03 2015-07-28
1 played 2015-07-06 2015-07-28
1 finished 2015-07-07 2015-07-28
2 food 2015-07-09 2015-07-10
2 cool 2015-07-11 2015-07-10
Что происходит?
Для каждого сотрудника на основе Обновленного по времени, если какая-либо запись в «Заплачено» равна нулю, для ближайшего будущего для этого же сотрудника потребуется значение «Заработная плата», иначе оно будет стоить того же столбца из ближайшего прошлого.
Например 5-я строка принимает значение с 6-й строки. 4-я строка принимает значение из 3-го ряда Вторая строка принимает значение из третьей строки. Примечание: Будущее получит преимущество
Мои попытки: я попытался использовать карту & уменьшить, но есть ли у нас хорошая техника, чтобы решить ее с силой искры лучше?
Сколько записей на сотрудника вы ожидаете? Как долго в среднем может быть разрыв? Что произойдет, если первая запись null? Вы хотите искать неограниченные предыдущие записи (скажем, на год старше)? – zero323
нет ограничений на количество записей на одного сотрудника. Средним разрывом может быть что угодно. Как я уже сказал, он подберет следующий непустой доступный, если не будет иметь нулевого значения, он будет искать только предыдущее ненулевое значение. Таким образом, каждое нулевое значение будет пытаться обновить только следующее ненулевое значение для конкретного сотрудника, иначе просто предыдущее ненулевое значение, поэтому, если в «salaRIED on» для конкретного сотрудника нет ненулевых значений, каждое значение будет null, иначе значение не будет равно null. Все остальные столбцы будут такими, как есть. – user1735076