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并且没有可用于插值的后续值。

    来源:酒酿小圆子~

    物联沃分享整理
    物联沃-IOTWORD物联网 » pandas.DataFrame.interpolate函数方法的使用

    发表评论