Я хотел бы заполнить пропущенное значение в 2 столбцах.Есть Date и Cat2 должны быть заполнены значением другой строки на основе последней даты для предопределенного Cat1 (предопределенного в предыдущих заполненных строках), например:
Пример данных:
Day Date Cat1 Cat2
1 31/12/17 cat mouse
2 01/09/18 cat mouse
3 27/05/18 dog elephant
4 NaN cat NaN
5 NaN cat NaN
Таким образом, столбец NaN
из Date
должен быть заполнен на основе последней существующей даты для значений cat
из столбца Cat1
- 01/09/18
.Столбец NaN
in Cat2
должен быть заполнен на mouse
как определенные значения в строке, которая уже выбрана для Date
- 01/09/18
.
Я читал, что циклически проходить по каждой строке было бы очень плохой практикой, и что было бы лучше сделать все одним способом.
Буду признателен за любую идею. Спасибо)
Я пытался сделать это методом fillna
, но он заполняется последними значениями без условия для Cat1.
data.fillna(method='ffill', inplace = True)
Фактический результат:
Day Date Cat1 Cat2
1 31/12/17 cat mouse
2 01/09/18 cat mouse
3 27/05/18 dog elephant
4 27/05/18 cat elephant
5 27/05/18 cat elephant
Ожидаемый результат должен быть:
Day Date Cat1 Cat2
1 31/12/17 cat mouse
2 01/09/18 cat mouse
3 27/05/18 dog elephant
4 01/09/18 cat mouse
5 01/09/18 cat mouse