Python Pandas - 具有固定值的插值

数据挖掘 Python 熊猫
2022-03-03 14:49:33

假设我们有一个具有以下值的熊猫系列

[np.nan, np.nan, 1, np.nan, 2, np.nan]

什么是最有效的方法是在中间用 0 填充 nan 值。所以我们有

[np.nan, np.nan, 1, 0, 2, np.nan]

换句话说,我们如何使用固定值进行插值,或者进行.fillna操作但忽略nan数组的开头和结尾。

2个回答

当前的解决方案,我正在使用

def interpolate_with_fixed(s, value=0):
    i = s.first_valid_index()
    j = s.last_valid_index()
    s.loc[i:j].fillna(value, inplace=True)
    return s

我认为您的解决方案非常地道。这是一个替代解决方案:

In [355]: s.loc[s.notnull().idxmax() : s[::-1].notnull().idxmax()].fillna(0, inplace=True)

In [356]: s
Out[356]:
0    NaN
1    NaN
2    1.0
3    0.0
4    2.0
5    NaN
dtype: float64