pandas.core.groupby.DataFrameGroupBy.ffill # DataFrameGroupBy。ffill ( limit = None ) [来源] # 向前填充值。 参数: 限制int,可选要填充的值的数量限制。 返回: 系列或数据框已填充缺失值的对象。 也可以看看 Series.ffill返回对象中字符数最少的系列。 DataFrame.ffill填充缺失值的对象,如果 inplace=True,则填充 None。 Series.fillna填充 Series 的 NaN 值。 DataFrame.fillna填充 DataFrame 的 NaN 值。 例子 对于系列分组依据: >>> 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