Pandas DataFrame 插值方法

PandasPandasBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Python 的 Pandas 库中的 interpolate() 方法。interpolate() 方法用于使用各种插值技术填充 DataFrame 中的缺失值或 NaN(Not a Number)值。插值是基于现有数据点估计缺失值的过程。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时可以向 Labby 提问。实验结束后请提供反馈,我们将及时为你解决问题。

导入必要的库

让我们从导入 pandas 库和 numpy 库开始。

import pandas as pd
import numpy as np

创建包含缺失值的 DataFrame

接下来,让我们创建一个包含一些缺失值的 DataFrame。

df = pd.DataFrame([(0.0, np.nan, -1.0, 1.0), (np.nan, 2.0, np.nan, np.nan), (2.0, 3.0, np.nan, 9.0)], columns=list('abcd'))
print(df)

输出:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  NaN  2.0  NaN  NaN
2  2.0  3.0  NaN  9.0

使用线性方法插值缺失值

我们可以使用线性方法对缺失值进行插值。线性方法假设 DataFrame 中的值是等距分布的。

interpolated_df = df.interpolate(method='linear')
print(interpolated_df)

输出:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  1.0  2.0 -1.0  5.0
2  2.0  3.0 -1.0  9.0

使用多项式方法插值缺失值

我们也可以使用多项式方法对缺失值进行插值。多项式方法需要我们指定样条或多项式的阶数。

interpolated_column = df['a'].interpolate(method='polynomial', order=1)
print(interpolated_column)

输出:

0    0.0
1    1.0
2    2.0
Name: a, dtype: float64

使用 pad 方法插值缺失值

另一种插值缺失值的方法是 pad 方法。pad 方法会用 DataFrame 中已有的值填充 NaN 值。

interpolated_df = df.interpolate(method='pad')
print(interpolated_df)

输出:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  0.0  2.0 -1.0  1.0
2  2.0  3.0 -1.0  9.0

总结

在本实验中,我们学习了如何使用 Pandas 中的 interpolate() 方法来填充 DataFrame 中的缺失值或 NaN 值。我们探索了不同的插值方法,例如线性插值、多项式插值和 pad 方法。插值是一种有用的技术,可以用于估计缺失值并使数据更加完整,以便进行分析。