Как заменить нули во фрейме данных на определенные значения?
Как получить из такого фрейма данных:
df =
Date m-t vil
3/15/1990 11 0
3/16/1990 11 3.98
3/19/1990 12 0
3/20/1990 12 0
3/21/1990 12 0
3/22/1990 12 0
3/23/1990 12 -4.69
3/26/1990 13 0
3/27/1990 13 0
3/28/1990 13 0
3/29/1990 13 0
3/30/1990 13 2.72
4/2/1990 14 0
4/3/1990 14 0
4/4/1990 14 0
4/5/1990 14 0
4/6/1990 14 0.14
Такой:
Date m-t vil
3/15/1990 11 3.98
3/16/1990 11 3.98
3/19/1990 12 -4.69
3/20/1990 12 -4.69
3/21/1990 12 -4.69
3/22/1990 12 -4.69
3/23/1990 12 -4.69
3/26/1990 13 2.72
3/27/1990 13 2.72
3/28/1990 13 2.72
3/29/1990 13 2.72
3/30/1990 13 2.72
4/2/1990 14 0.14
4/3/1990 14 0.14
4/4/1990 14 0.14
4/5/1990 14 0.14
4/6/1990 14 0.14
То есть, заменить нули в колонке vil, на последние числа (не знаю как правильно сказать).
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Замените нули на NaN и воспользуйтесь методом Series.bfill():
df["vil"] = df["vil"].replace(0, np.nan).bfill()
результат:
In [228]: df
Out[228]:
Date m-t vil
0 3/15/1990 11 3.98
1 3/16/1990 11 3.98
2 3/19/1990 12 -4.69
3 3/20/1990 12 -4.69
4 3/21/1990 12 -4.69
5 3/22/1990 12 -4.69
6 3/23/1990 12 -4.69
7 3/26/1990 13 2.72
8 3/27/1990 13 2.72
9 3/28/1990 13 2.72
10 3/29/1990 13 2.72
11 3/30/1990 13 2.72
12 4/2/1990 14 0.14
13 4/3/1990 14 0.14
14 4/4/1990 14 0.14
15 4/5/1990 14 0.14
16 4/6/1990 14 0.14