Python 基于上一行和下一行填充行

Python 基于上一行和下一行填充行,python,pandas,dataframe,Python,Pandas,Dataframe,我有这种df: values str1 str1 nan nan str1 nan nan str2 nan nan str2 值是str。我想填充行被相同值包围的位置,并获得: values str1 str1 str1 str1 str1 nan nan str2 str2 str2 str2 fillna函数中是否有可执行此操作的选项 编辑: 还有一个选项可以设置两个stru_i之间要填充的行数限制吗?单向使用ffill和bfill: df2 = df.ffill() print(

我有这种df:

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

值是
str
。我想填充行被相同值包围的位置,并获得:

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

fillna
函数中是否有可执行此操作的选项

编辑:


还有一个选项可以设置两个stru_i之间要填充的行数限制吗?

单向使用
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

您是否尝试过
df[“values”].fillna(method=“ffill”,limit=N)
?是的,但我将用
str1
替换
str1
str2
之间的
nan