Я работаю с фреймом данных, в котором есть столбец с несколькими NaN, который я хочу заполнить в соответствии со следующим условием: если при движении назад и вперед до 3 строк есть 2 равных значения, тогда заполните NaN этим значением.
Поскольку это может быть непонятно, приведем несколько примеров ниже:
col1
0 10
1 10
2 NaN
3 NaN
4 NaN
5 10
6 5
7 NaN
8 5
9 NaN
10 NaN
11 NaN
12 NaN
- Значение в строке 2 содержит 10 строк на 1 и 10 строк на 3 идти вперед. -> Заполнить 10
- Значение в строке 3 имеет 10 на 2 строки назад и 10 на 2 строки вперед. -> Заполните 10
- Значение в строке 4 имеет 10 на 3 строки назад и 10 на 1 строку вперед. -> Заполните 10
- Значение в строке 7 имеет строку 5 на 1, идущую назад, и строку 5 на 1, идущую вперед. -> Заполните 5
- Значение в строке 9 имеет строку 5 на 1, идущую назад, но не 5 в строке 3, идущую вперед. -> Тогда не заполняйте
Тогда результат будет следующим:
col1
0 10
1 10
2 10
3 10
4 10
5 10
6 5
7 5
8 5
9 NaN
10 NaN
11 NaN
12 NaN
Есть ли какая-либо функциональность, которую я могу использовать, чтобы придать этой логике c на fillna
?
Спасибо !!