指数衰减插值



我不确定我在标题中是否使用了正确的技术词。我想要的是如下所示的东西。

我有以下代码

import pandas as pd
import numpy as np
df = pd.DataFrame([[1, None, None, 4, None, None, None, 10]])
df = df.fillna(np.nan)
df = df.transpose().interpolate()

它进行线性插值,这给了我类似的东西

  1.0  2.0  3.0  4.0  5.5  7.0  8.5  10.0

我想要的是一个指数衰减的插值。也就是说,如下所示(不是确切的值,但您明白了(。

  1.0  2.5  3.0  4.0  6.5  8.0  9.2  10.0

也就是说,我希望较近的值比较远的值变化更剧烈。熊猫中是否有可以做到这一点的插值方法?

您需要对数据应用一些转换。试试这个:

df = pd.DataFrame([[1, None, None, 4, None, None, None, 10]])
df = df.fillna(np.nan)
df = 10**df
df = df.transpose().interpolate()
df = np.log10(df)

你可以玩力量来获得与你需要的东西相匹配的东西。

最新更新