用熊猫插值时如何控制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的主要内容,如果未能解决你的问题,请参考以下文章