DataFrame.interpolation() 在其源代码中如何工作?

问题描述 投票:0回答:1

由于我找不到 DataFrame.interpolation() 的“method”参数的单个方法的声明,所以我在这里问:

pandas 的 DataFrame.interpolation() 与它考虑的行数相关的工作方式是怎样的,它只是 NaN 之前的行和之后的行吗? 或者它是整个 DataFrame(它如何处理 100 万行?)

如果您已经知道在哪里查看,请随时分享源代码的链接(因为https://github.com/pandas-dev/pandas/blob/06d230151e6f18fdb8139d09abf539867a8cd481/pandas/core/frame.py#L10916 不包括“方法”的声明(例如“多项式”)。

pandas dataframe github interpolation data-cleaning
1个回答
0
投票

我在

core/missing.py
找到了附件。

我的解释是插值要么用

np.interp
完成,要么如果指定了方法并且仅在 scipy 中可用,则用
_interpolate_scipy_wrapper
完成。我无法找到一个函数,但合理的猜测是它是 scipy 的包装器。

if method in NP_METHODS:
        # np.interp requires sorted X values, #21037

        indexer = np.argsort(indices[valid])
        yvalues[invalid] = np.interp(
            indices[invalid], indices[valid][indexer], yvalues[valid][indexer]
        )
    else:
        yvalues[invalid] = _interpolate_scipy_wrapper(
            indices[valid],
            yvalues[valid],
            indices[invalid],
            method=method,
            fill_value=fill_value,
            bounds_error=bounds_error,
            order=order,
            **kwargs,
        )

    yvalues[preserve_nans] = np.nan
© www.soinside.com 2019 - 2024. All rights reserved.