dask_expr._groupby.SeriesGroupBy.ffill

dask_expr._groupby.SeriesGroupBy.ffill

SeriesGroupBy.ffill(limit=None, shuffle_method=None)

向前填充值。

此文档字符串是从 pandas.core.groupby.groupby.GroupBy.ffill 复制的。

Dask 版本可能存在一些不一致性。

参数
限制int, 可选

填充值的数量限制。

返回
Series 或 DataFrame

填充了缺失值的对象。

参见

Series.ffill

返回对象中字符数最少的系列。

DataFrame.ffill

如果 inplace=True,则填充缺失值的对象或为 None。

Series.fillna

填充一个 Series 中的 NaN 值。

DataFrame.fillna

填充 DataFrame 中的 NaN 值。

示例

对于 SeriesGroupBy:

>>> key = [0, 0, 1, 1]  
>>> ser = pd.Series([np.nan, 2, 3, np.nan], index=key)  
>>> ser  
0    NaN
0    2.0
1    3.0
1    NaN
dtype: float64
>>> ser.groupby(level=0).ffill()  
0    NaN
0    2.0
1    3.0
1    3.0
dtype: float64

对于 DataFrameGroupBy:

>>> df = pd.DataFrame(  
...     {
...         "key": [0, 0, 1, 1, 1],
...         "A": [np.nan, 2, np.nan, 3, np.nan],
...         "B": [2, 3, np.nan, np.nan, np.nan],
...         "C": [np.nan, np.nan, 2, np.nan, np.nan],
...     }
... )
>>> df  
   key    A    B   C
0    0  NaN  2.0 NaN
1    0  2.0  3.0 NaN
2    1  NaN  NaN 2.0
3    1  3.0  NaN NaN
4    1  NaN  NaN NaN

在每一列的每个组中,向前或向后传播非空值。

>>> df.groupby("key").ffill()  
     A    B   C
0  NaN  2.0 NaN
1  2.0  3.0 NaN
2  NaN  NaN 2.0
3  3.0  NaN 2.0
4  3.0  NaN 2.0

在每一组的行中,向前或向后传播非空值。

>>> df.T.groupby(np.array([0, 0, 1, 1])).ffill().T  
   key    A    B    C
0  0.0  0.0  2.0  2.0
1  0.0  2.0  3.0  3.0
2  1.0  1.0  NaN  2.0
3  1.0  3.0  NaN  NaN
4  1.0  1.0  NaN  NaN

仅在行内按组替换第一个NaN元素。

>>> df.groupby("key").ffill(limit=1)  
     A    B    C
0  NaN  2.0  NaN
1  2.0  3.0  NaN
2  NaN  NaN  2.0
3  3.0  NaN  2.0
4  3.0  NaN  NaN