欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pandas数据处理基础6

程序员文章站 2022-03-29 08:06:36
...

插值填充

插值是数值分析中一种方法。简而言之,就是借助于一个函数(线性或非线性),再根据已知数据去求解未知数据的值。插值在数据领域非常常见,它的好处在于,可以尽量去还原数据本身的样子。

我们可以通过 interpolate() 方法完成线性插值。当然,其他一些插值算法可以阅读官方文档了解。

# 生成一个 DataFrame
df = pd.DataFrame({'A': [1.1, 2.2, np.nan, 4.5, 5.7, 6.9],
                   'B': [.21, np.nan, np.nan, 3.1, 11.7, 13.2]})
df

输出结果:
Pandas数据处理基础6
对于上面存在的缺失值,如果通过前后值,或者平均值来填充是不太能反映出趋势的。这时候,插值最好使。我们用默认的线性插值试一试。

df_interpolate=df.interpolate()
df_interpolate

输出结果:
Pandas数据处理基础6
下图展示了插值后的数据,明显看出插值结果符合数据的变化趋势。如果按照前后数据顺序填充,则无法做到这一点。

Pandas数据处理基础6对于 interpolate() 支持的插值算法,也就是 method=。下面给出几条选择的建议:

1.如果你的数据增长速率越来越快,可以选择 method='quadratic'二次插值。
2.如果数据集呈现出累计分布的样子,推荐选择 method='pchip'。
3.如果需要填补缺省值,以平滑绘图为目标,推荐选择 method='akima'。

当然,最后提到的 method=‘akima’,需要你的环境中安装了 Scipy 库。除此之外,method=‘barycentric’ 和 method=‘pchip’ 同样也需要 Scipy 才能使用。

相关标签: Pandas数据处理