【问题标题】:pandas.interpolate doesn't give wanted resultpandas.interpolate 没有给出想要的结果
【发布时间】:2021-08-29 08:56:36
【问题描述】:

我正在尝试填充我的数据集中的空 y 字段[从 12 到 16] ,这里是原始数据可视化

最后我有 NaN 值,这是我的代码

df=df.interpolate(method='polynomial', order=2, limit_direction ='both')

我尝试了很多方法('slinear','quadratic','cubic','spline','barycentric'),所有方法都给出了以下结果

如您所见,从 12 到 14 的结果不是我的数据的正弦扩展,它只是克隆了第一个元素。

【问题讨论】:

  • 你能分享你的df 或者你是如何生成它的吗?
  • 您是否尝试过使用更高的order(3 或 4)和/或limit_direction='forward'
  • @DerekO 我只是用 x_extend=np.arange(start=np.max(x), stop=15, step=x_step) 生成从 12 到 15 的 x 数据,步是平均步给定的数据集。然后我将主数据集与生成的数据集连接起来
  • @99_m4n 是的,我做到了,结果相同。

标签: python pandas data-science interpolation


【解决方案1】:

基于this answer,当你想推断数据是如何推断数据在插值范围之外的行为时,你需要依赖scipy库中一些更强大的interpolation functions或者编写一个插值函数靠自己。

虽然这可能有点超出您的要求,但我认为您的数据显然是一个周期函数,因此多项式函数或样条将继续无限超过原始数据集的端点。相反,trigonometric interpolation 可能由于其周期性行为而更好地推断,并且您可以通过插值到数据集中的等距点来简化计算复杂性(例如,不要将三角函数拟合到所有 500 个点)

【讨论】:

  • 稍后我会添加一些代码,向您展示如何使用这些 scipy 函数
猜你喜欢
  • 1970-01-01
  • 2013-10-26
  • 2021-03-02
  • 2017-08-25
  • 2021-12-10
  • 2018-10-17
  • 2019-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多