用熊猫插值时如何控制X和Y

Posted

技术标签:

【中文标题】用熊猫插值时如何控制X和Y【英文标题】:How to control X's and Y's when interplolating with pandas 【发布时间】:2018-09-15 07:36:49 【问题描述】:

我想使用样条插值来填充一些空值,但我找不到为 Pandas 指定 X 和 Y 的方法。它会自动选择索引作为 X 并分别为所有具有空值的列填充空值。 关于如何使其工作的任何想法?还是我需要使用 SciPy?

我尝试过这样的事情:

df.interpolate(x='some_column1', y='some_column2', method='spline', order=1)

但我得到了: TypeError: _interpolate_scipy_wrapper() 为关键字参数 'y' 获得了多个值

我知道有一个重置索引的选项,但是还有其他方法可以选择我要使用的列吗?

【问题讨论】:

【参考方案1】:

Pandas 插值不允许您同时指定 x、y 和方法。为了更好地控制插值,您可能需要使用scipy.interp1d

df['some_column_2'] = scipy.interp1d(df['some_column_1'], df['some_column_2'])

注意事项:

如果DataFrame不是按some_column_1排序的,指定assume_sorted=False。 默认情况下,interp1d 进行线性插值。可以使用 kind 参数更改此设置。

【讨论】:

interp1d 和 spline order=1 一样,还是需要指定顺序?

以上是关于用熊猫插值时如何控制X和Y的主要内容,如果未能解决你的问题,请参考以下文章

Matlab中插值函数怎么用

如何用MATLAB 编写interpl插值函数

如何在 ipython 笔记本中设置和显示带有熊猫图的 x/y 标签? [复制]

MATLAB中如何对插值

控制台输出一个菱形。用python写

opencv双线性插值