如何在两边插入最小值的 nans 填充?

cle*_*ing 5 python numpy dataframe pandas

我有一个如下形式的数据框:

df = {'col_1': [5,4,np.nan,np.nan,1,0,1,2,np.nan,np.nan,5],
        'col_2': [5,4,3,2,np.nan,np.nan,np.nan,np.nan,3,4,5]}

df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

我想“插值”但在任一侧取最小值以获得所需的结果:

df_desired = {'col_1': [5,4,1,1,1,0,1,2,2,2,5],
        'col_2': [5,4,3,2,2,2,2,2,3,4,5]}

df_desired = pd.DataFrame(df_desired)
Run Code Online (Sandbox Code Playgroud)

有谁知道这样做的好方法吗?谢谢!

ank*_*_91 2

np.miminum这是您可以往返于ffill和 之间的一种方式bfill

out = np.minimum(df.ffill(),df.bfill())
Run Code Online (Sandbox Code Playgroud)
print(out)

    col_1  col_2
0     5.0    5.0
1     4.0    4.0
2     1.0    3.0
3     1.0    2.0
4     1.0    2.0
5     0.0    2.0
6     1.0    2.0
7     2.0    2.0
8     2.0    3.0
9     2.0    4.0
10    5.0    5.0
Run Code Online (Sandbox Code Playgroud)