Заменить нули в датафрейме на значение до них
Как заменить нули на первое значение перед ними? Тоесть перед нулями есть значение последнее, на нули ниже его надо раскопировать.
Данные: 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()