заполнение строк на основе предыдущей и следующей строк

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть такой df :

 values
str1
str1
nan
nan
str1
nan
nan
str2
nan
nan
str2

  

values являются str . Я хочу заполнить строки, в которых строки окружены одинаковым значением, и получить :

 values
str1
str1
str1
str1
str1
nan
nan
str2
str2
str2
str2

  

Есть ли опция в fillna функции, которая может это сделать?

Редактировать :

Есть ли также возможность установить ограничение на количество строк между двумя str_i для заполнения?

Комментарии:

1. вы пробовали df["values"].fillna(method="ffill", limit=N) ?

2. да, но я заменю nan между str1 и str2 на str1

Ответ №1:

Один из способов использования ffill и bfill :

 df2 = df.ffill()
print(df2[df2 == df.bfill()])
  

Вывод:

    values
0    str1
1    str1
2    str1
3    str1
4    str1
5     NaN
6     NaN
7    str2
8    str2
9    str2
10   str2