pandas.core.groupby.DataFrameGroupBy.fillna
- DataFrameGroupBy.fillna(value=None, method=None, axis=_NoDefault.no_default, inplace=False, limit=None, downcast=_NoDefault.no_default)[source]
-
Заполнение пропущенных значений (NA/NaN) указанным методом внутри групп.
Устарело начиная с версии 2.2.0: Этот метод устарел и будет удален в будущей версии. Используйте
DataFrameGroupBy.ffill()илиDataFrameGroupBy.bfill()для заполнения вперёд или назад соответственно. Если вы хотите заполнить одним значением, используйтеDataFrame.fillna()вместо этого.- Параметры:
-
- value:скаляр, dict, Series или DataFrame
-
Значение для заполнения пропусков (например, 0), или dict/Series/DataFrame со значениями, указывающими, какое значение использовать для каждого индекса (для Series) или столбца (для DataFrame). Значения, отсутствующие в dict/Series/DataFrame, не будут заполнены. Это значение не может быть списком. Пользователи, которые хотят использовать аргумент
valueи неmethod, должны предпочестьDataFrame.fillna(), так как это даст тот же результат и будет более эффективным. - method:{{‘bfill’, ‘ffill’, None}}, по умолчанию None
-
Метод для заполнения пропусков.
'ffill'будет распространять последнее действительное значение вперёд внутри группы.'bfill'будет использовать следующее действительное значение для заполнения пропусков. - axis:{0 или ‘index’, 1 или ‘columns’}
-
Ось, по которой нужно заполнить пропущенные значения. Когда аргумент
DataFrameGroupByaxisравен0, использованиеaxis=1даст те же результаты, что иDataFrame.fillna(). Когда аргументDataFrameGroupByaxisравен1, использованиеaxis=0илиaxis=1даст те же результаты. - inplace:bool, по умолчанию False
-
Нерабочий параметр. Не устанавливайте его в значение True.
- limit:int, по умолчанию None
-
Если метод указан, это максимальное количество последовательных пропущенных значений, которые необходимо заполнить вперёд/назад внутри группы. Другими словами, если есть пробел с количеством пропущенных значений больше этого числа, то он будет заполнен частично. Если метод не указан, это максимальное количество записей по всей оси, где будут заполнены пропуски. Должно быть больше 0, если не равно None.
- downcast:dict, по умолчанию None
-
Словарь item->тип данных, к которому следует привести значения при возможности, или строка ‘infer’, которая попытается привести к соответствующему типу (например, float64 к int64, если это возможно).
- Возвращаемое значение:
-
- DataFrame
-
Объект с заполненными пропущенными значениями.
См. также
Примеры
>>> 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").fillna(method="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.groupby("key").fillna(method="bfill") A B C 0 2.0 2.0 NaN 1 2.0 3.0 NaN 2 3.0 NaN 2.0 3 3.0 NaN NaN 4 NaN NaN NaNРаспространение ненулевых значений вперёд или назад внутри каждой группы по строкам.
>>> df.T.groupby(np.array([0, 0, 1, 1])).fillna(method="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
>>> df.T.groupby(np.array([0, 0, 1, 1])).fillna(method="bfill").T key A B C 0 0.0 NaN 2.0 NaN 1 0.0 2.0 3.0 NaN 2 1.0 NaN 2.0 2.0 3 1.0 3.0 NaN NaN 4 1.0 NaN NaN NaN
Заполнение только первого пропущенного элемента внутри группы по строкам.
>>> df.groupby("key").fillna(method="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
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.core.groupby.DataFrameGroupBy.fillna.html