pandas.DataFrame.interpolate函数方法的使用

pandas.DataFrame.interpolate函数方法的使用,第1张

pandas.DataFrame.interpolate函数方法的使用

Pandas dataframe.interpolate()功能本质上是用来填充NA Dataframe 或系列中的值。但是,这是一个非常强大的功能,可以填补缺失的值。它使用各种插值技术来填充缺失值,而不是hard-coding值。

pandas.Dataframe.interpolate函数简介

具体用法:

Dataframe.interpolate(self, method='linear', axis=0, limit=None, inplace=False, limit_direction='forward', limit_area=None, downcast=None, **kwargs)

参数:

  • method:{“线性”,“时间”,“索引”,“值”,“最近”,“零”,“线性”,“二次”,“三次”,“重心”,“克罗格”,“多项式”,“样条”,“ piecewise_polynomial”,“ from_derivatives”,“ pchip”,“ akima”}
  • axis:0填充column-by-column和1填充row-by-row。
  • limit:要填充的连续NaN的最大数量。必须大于0。
  • limit_direction:{“前进”,“后退”,“两者”},默认为“前进”
  • limit_area:无(默认)无填充限制。inside 仅填充有效值包围的NaN(内插)。outside 仅将NaN填充到有效值之外(外推)。如果指定了限制,则将沿该方向填充连续的NaN。
  • inplace:如果可能,更新NDframe。
  • downcast:如果可能,请向下转换dtypes。
  • kwargs:关键字参数传递给插值函数。

**返回值:**在NaN处插补的相同形状的Series或Dataframe

范例1:采用interpolate()函数使用线性方法填充缺失值。
import numpy as np
import pandas as pd

df = pd.Dataframe(data=[np.nan, 2, np.nan, 6, np.nan])
print(df)

输出结果:

df.interpolate(method='linear', limit_direction='forward')

输出结果:

正如我们看到的输出,第一行中的值无法填充,因为值的填充方向为forward并且没有可用于插值的先前值。

范例2:采用interpolate()函数使用线性方法向后插值缺失值
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),
                   (np.nan, 4.0, -4.0, 16.0)],
                   columns=list('abcd'))
print(df)            

输出结果:

df.interpolate(method='linear', limit_direction='backward', axis=0)

输出结果:

最后一行中的值无法填充,因为值的填充方向为backward并且没有可用于插值的后续值。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5689984.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存