Маскировать даже не нужно, есть метод replace
, который позволяет указать limit
и method='ffill'
. Прохождение Nan
также преобразуется в число с плавающей запятой, которое не требуется.
import pandas as pd
df = pd.DataFrame({'a': [5, 0, 0, 0, 0, 0, 6, 0]})
# Replace 0s with forward fill and limit set to 4 elements
df2 = df.replace(0, limit=4, method='ffill')
print(df)
a
0 5
1 5
2 5
3 5
4 5
5 0
6 6
7 6