Заменить нули в датафрейме на значение до них

Как заменить нули на первое значение перед ними? Тоесть перед нулями есть значение последнее, на нули ниже его надо раскопировать.

Данные: https://dropmefiles.com/hIxcO

Вход:

6/2/2020    100038  40.29
6/2/2020    100039  40.29
6/2/2020    100040  0
6/2/2020    100041  0
6/2/2020    100042  0
6/2/2020    100043  40.25
6/2/2020    100044  0
6/2/2020    100045  0
6/2/2020    100046  0
6/2/2020    100047  0
6/2/2020    100048  40.28
6/2/2020    100049  40.27
6/2/2020    100050  0
6/2/2020    100051  0

Выход:

6/2/2020    100038  40.29
6/2/2020    100039  40.29
6/2/2020    100040  40.29
6/2/2020    100041  40.29
6/2/2020    100042  40.29
6/2/2020    100043  40.25
6/2/2020    100044  40.25
6/2/2020    100045  40.25
6/2/2020    100046  40.25
6/2/2020    100047  40.25
6/2/2020    100048  40.28
6/2/2020    100049  40.27
6/2/2020    100050  40.27
6/2/2020    100051  40.27

Ответы (2 шт):

Автор решения: passant

Тривиальный цикл не подходит?

import pandas as pd
ds=pd.Series([40.29,40.29,0,0,0,40.25,0,0,0,40.28,40.27,0,0])
for i,elt in enumerate(ds):
    if elt!=0:
        curr=elt
    else:
        ds[i]=curr

0     40.29
1     40.29
2     40.29
3     40.29
4     40.29
5     40.25
6     40.25
7     40.25
8     40.25
9     40.28
10    40.27
11    40.27
12    40.27

Поскольку вы не привели законченный минимальный пример - от Series перейти к DataFrame надеюсь сумеете самостоятельно.

→ Ссылка
Автор решения: MaxU

Подозреваю, что этот вопрос связан с вашим предыдущим. В этом случае можно сделать так:

res = df.merge(df1, how="left").ffill()
→ Ссылка