pandas.core.groupby.SeriesGroupBy.fillna #

系列分组依据。fillna ( value = None , method = None , axis = _NoDefault.no_default , inplace = False , limit = None , downcast = _NoDefault.no_default ) [来源] #

使用组内指定的方法填充 NA/NaN 值。

自版本 2.2.0 起已弃用:此方法已弃用,并将在未来版本中删除。使用SeriesGroupBy.ffill()SeriesGroupBy.bfill() 来代替向前或向后填充。如果您想填充单个值,请改用Series.fillna()

参数
标量、字典、系列或数据帧

用于填充漏洞的值(例如 0),或者是值的字典/系列/数据帧,指定每个索引(对于系列)或列(对于数据帧)使用哪个值。不在 dict/Series/DataFrame 中的值将不会被填充。该值不能是列表。想要使用该value参数而不是该参数的用户method 应该更喜欢,Series.fillna()因为这会产生相同的结果并且性能更高。

方法{{'bfill', 'ffill', None}}, 默认 None

用于填充孔的方法。'ffill'将在组内向前传播最后一个有效观察。 'bfill'将使用下一个有效观察来填补空白。

{0 或“索引”、1 或“列”}

未使用,仅用于与DataFrameGroupBy.fillna().

inplace布尔值,默认 False

破碎的。不要设置为 True。

limit int,默认无

如果指定了 method,则这是组内向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在连续 NaN 数量超过此数量的间隙,则只会部分填充。如果未指定 method,则这是沿整个轴填充 NaN 的最大条目数。如果不是 None,则必须大于 0。

downcast dict,默认为 None

如果可能的话,要向下转换的 item->dtype 的字典,或者字符串“infer”,它将尝试向下转换为适当的相等类型(例如,如果可能,将 float64 转换为 int64)。

返回
系列

组内填充缺失值的对象。

也可以看看

ffill

转发组内的填充值。

bfill

向后填充组内的值。

例子

对于系列分组依据:

>>> lst = ['cat', 'cat', 'cat', 'mouse', 'mouse']
>>> ser = pd.Series([1, None, None, 2, None], index=lst)
>>> ser
cat    1.0
cat    NaN
cat    NaN
mouse  2.0
mouse  NaN
dtype: float64
>>> ser.groupby(level=0).fillna(0, limit=1)
cat    1.0
cat    0.0
cat    NaN
mouse  2.0
mouse  0.0
dtype: float64