Учитывая данные, подобные приведенным ниже
Time Col01 Col02
05:17:55.703000 NaN NaN
05:17:55.703000 891 12
05:17:55.703000 891 13
05:17:55.703000 891 15
05:17:55.703000 891 16
05:17:55.703000 891 17
05:17:55.703000 891 18
05:17:55.707000 892 0
05:17:55.707000 892 1
05:17:55.707000 892 5
05:17:55.707000 892 6
05:17:55.707000 892 7
05:17:55.708000 NaN NaN
05:17:55.711000 892 10
05:17:55.711000 892 11
05:17:55.711000 892 12
05:17:55.723000 893 11
05:17:55.723000 893 15
05:17:55.723000 893 16
05:17:55.726000 NaN NaN
, необходимо создать два новых столбца, которые будут действовать, если текущий столбец равен NaN
на основе приведенной ниже логики
+-----------------+-------+-------+----------+----------+----------------------------------------+
| Time | Col01 | Col02 | Col01new | Col02new | |
+-----------------+-------+-------+----------+----------+----------------------------------------+
| 05:17:55.703000 | NaN | NaN | 891 | 12 | if NaN & first row, fill from next row |
| 05:17:55.703000 | 891 | 12 | 891 | 12 | |
| 05:17:55.703000 | 891 | 13 | 891 | 13 | |
| 05:17:55.703000 | 891 | 15 | 891 | 15 | |
| 05:17:55.703000 | 891 | 16 | 891 | 16 | |
| 05:17:55.703000 | 891 | 17 | 891 | 17 | |
| 05:17:55.703000 | 891 | 18 | 891 | 18 | |
| 05:17:55.707000 | 892 | 0 | 892 | 0 | |
| 05:17:55.707000 | 892 | 1 | 892 | 1 | |
| 05:17:55.707000 | 892 | 5 | 892 | 5 | |
| 05:17:55.707000 | 892 | 6 | 892 | 6 | |
| 05:17:55.707000 | 892 | 7 | 892 | 7 | |
| 05:17:55.708000 | NaN | NaN | 892 | 7 | if NaN fill from previous row |
| 05:17:55.711000 | 892 | 10 | 892 | 10 | |
| 05:17:55.711000 | 892 | 11 | 892 | 11 | |
| 05:17:55.711000 | 892 | 12 | 892 | 12 | |
| 05:17:55.723000 | 893 | 11 | 893 | 11 | |
| 05:17:55.723000 | 893 | 15 | 893 | 15 | |
| 05:17:55.723000 | 893 | 16 | 893 | 16 | |
| 05:17:55.726000 | NaN | NaN | 893 | 16 | if NaN fill from previous row |
+-----------------+-------+-------+----------+----------+----------------------------------------+
.