如何使用两侧的最小值进行插值填充NaN值?

5

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

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)

我想要进行“插值”,但希望在使用时取两侧的最小值,以实现所需结果:
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)

有人知道做这件事的好方法吗?谢谢!

1个回答

2

以下是一种方法,可以在ffillbfill之间获取np.minimum

out = np.minimum(df.ffill(),df.bfill())

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接