- 用法:- Series.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction=None, limit_area=None, downcast=None, **kwargs)
- 使用插值方法填充 NaN 值。 - 请注意,具有 MultiIndex 的 DataFrame/Series 仅支持 - method='linear'。- method:str,默认 ‘linear’
- 要使用的插值技术。之一: - ‘linear’:忽略索引并将值视为等距。这是 MultiIndexes 上唯一支持的方法。 
- ‘time’:处理每日和更高分辨率的数据以插入给定的间隔长度。 
- ‘index’, ‘values’:使用索引的实际数值。 
- ‘pad’:使用现有值填充 NaN。 
- ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘spline’, ‘barycentric’, ‘polynomial’:传递给 - scipy.interpolate.interp1d。这些方法使用索引的数值。 ‘polynomial’ and ‘spline’ 都要求您还指定- order(int),例如- df.interpolate(method='polynomial', order=5)。
- ‘krogh’, ‘piecewise_polynomial’、‘spline’, ‘pchip’, ‘akima’, ‘cubicspline’:类似名称的 SciPy 插值方法的包装器。请参阅 - Notes。
- ‘from_derivatives’:指的是 - scipy.interpolate.BPoly.from_derivatives,它替换了scipy 0.18中的‘piecewise_polynomial’插值方法。
 
- axis:{{0 or ‘index’, 1 or ‘columns’, None}},默认无
- 沿插值的轴。 
- limit:整数,可选
- 要填充的最大连续 NaN 数。必须大于 0。 
- inplace:布尔值,默认为 False
- 如果可能,更新数据。 
- limit_direction:{{‘forward’, ‘backward’, ‘both’}},可选
- 连续的 NaN 将朝这个方向填充。 - 如果指定了限制:
- 如果‘method’ 是‘pad’ or ‘ffill’,则‘limit_direction’ 必须是‘forward’。 
- 如果‘method’ 是‘backfill’ or ‘bfill’,则‘limit_direction’ 必须是‘backwards’。 
 
- 如果未指定‘limit’:
- 如果‘method’为‘backfill’ or ‘bfill’,则默认为‘backward’ 
- 否则默认为‘forward’ 
 
 
- limit_area:{{ None, ‘inside’, ‘outside’}},默认无
- 如果指定了限制,则连续的 NaN 将被此限制填充。 - None:没有填充限制。
- ‘inside’:仅填充由有效值包围的 NaN(插值)。 
- ‘outside’:仅在有效值之外填充 NaN(外推)。 
 
- downcast:可选,‘infer’ 或无,默认为无
- 如果可能的话,向下转换 dtypes。 
- ``**kwargs``:可选的
- 要传递给插值函数的关键字参数。 
 
- Series 或 DataFrame 或 None
- 返回与调用者相同的对象类型,在部分或全部 - NaN值或 None 如果- inplace=True插值。
 
 - 参数:- 返回:- 注意:- ‘krogh’, ‘piecewise_polynomial’、‘spline’, ‘pchip’ and ‘akima’ 方法是类似名称的各自 SciPy 实现的包装器。这些使用索引的实际数值。有关其行为的更多信息,请参阅 SciPy 文档和 SciPy 教程。 - 例子:- 通过线性插值将 - NaN填充到- Series中。- >>> s = pd.Series([0, 1, np.nan, 3]) >>> s 0 0.0 1 1.0 2 NaN 3 3.0 dtype:float64 >>> s.interpolate() 0 0.0 1 1.0 2 2.0 3 3.0 dtype:float64- 通过填充在一个系列中填充 - NaN,但一次最多填充两个连续的- NaN。- >>> s = pd.Series([np.nan, "single_one", np.nan, ... "fill_two_more", np.nan, np.nan, np.nan, ... 4.71, np.nan]) >>> s 0 NaN 1 single_one 2 NaN 3 fill_two_more 4 NaN 5 NaN 6 NaN 7 4.71 8 NaN dtype:object >>> s.interpolate(method='pad', limit=2) 0 NaN 1 single_one 2 single_one 3 fill_two_more 4 fill_two_more 5 fill_two_more 6 NaN 7 4.71 8 4.71 dtype:object- 通过多项式插值或样条在系列中填充 - NaN:两种‘polynomial’ and ‘spline’ 方法都要求您还指定- order(int)。- >>> s = pd.Series([0, 2, np.nan, 8]) >>> s.interpolate(method='polynomial', order=2) 0 0.000000 1 2.000000 2 4.666667 3 8.000000 dtype:float64- 使用线性插值沿每列向前(即向下)填充 DataFrame。 - 请注意‘a’ 列中的最后一个条目如何以不同的方式进行插值,因为在它之后没有条目可用于插值。请注意 ‘b’ 列中的第一个条目如何保持 - NaN,因为在它之前没有条目可用于插值。- >>> 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')) >>> 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 3 NaN 4.0 -4.0 16.0 >>> df.interpolate(method='linear', limit_direction='forward', axis=0) a b c d 0 0.0 NaN -1.0 1.0 1 1.0 2.0 -2.0 5.0 2 2.0 3.0 -3.0 9.0 3 2.0 4.0 -4.0 16.0- 使用多项式插值。 - >>> df['d'].interpolate(method='polynomial', order=2) 0 1.0 1 4.0 2 9.0 3 16.0 Name:d, dtype:float64
相关用法
- Python pandas.Series.info用法及代码示例
- Python pandas.Series.infer_objects用法及代码示例
- Python pandas.Series.iat用法及代码示例
- Python pandas.Series.isna用法及代码示例
- Python pandas.Series.iteritems用法及代码示例
- Python pandas.Series.isnull用法及代码示例
- Python pandas.Series.idxmin用法及代码示例
- Python pandas.Series.idxmax用法及代码示例
- Python pandas.Series.iloc用法及代码示例
- Python pandas.Series.items用法及代码示例
- Python pandas.Series.isin用法及代码示例
- Python pandas.Series.add_prefix用法及代码示例
- Python pandas.Series.map用法及代码示例
- Python pandas.Series.max用法及代码示例
- Python pandas.Series.str.isdecimal用法及代码示例
- Python pandas.Series.str.get用法及代码示例
- Python pandas.Series.to_csv用法及代码示例
- Python pandas.Series.dt.day_name用法及代码示例
- Python pandas.Series.sample用法及代码示例
- Python pandas.Series.head用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.interpolate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
