插值:多项式向前和向后丢失 NaN

问题描述

为什么多项式向前和向后缺少这些 NaN?没有错误

df = pd.DataFrame(
    [
        (0.0,np.nan,-1.0,1.0),(np.nan,2.0,np.nan),(2.0,3.0,9.0),4.0,-4.0,16.0),(0.0,16.0)
    ],columns=list('abcd')
)

错过 a 列底部的前向值

df.interpolate(method='polynomial',limit_direction='forward',axis=0,order=1)

    a   b   c   d
0   0.000000e+00    NaN -1.000000   1.000000
1   2.000000e+00    2.0 -5.714286   -5.894737
2   2.000000e+00    3.0 -6.142857   9.000000
3   1.000000e+00    4.0 -4.000000   16.000000
4   0.000000e+00    3.0 -1.000000   1.000000
5   -2.220446e-16   2.0 1.142857    -0.842105
6   2.000000e+00    3.0 0.714286    9.000000
7   NaN 4.0 -4.000000   16.000000

缺少 b 列顶部的向后值

df.interpolate(method='polynomial',limit_direction='backward',order=1)

    a   b   c   d
0   0.0 NaN -1.0    1.0
1   1.0 2.0 -2.0    5.0
2   2.0 3.0 -3.0    9.0
3   1.0 4.0 -4.0    16.0
4   0.0 3.0 -1.0    1.0
5   1.0 2.0 -2.0    5.0
6   2.0 3.0 -3.0    9.0
7   NaN 4.0 -4.0    16.0
  • 我曾尝试更改 order=3 和其他奇数。
  • method='linear' 按预期工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)