Spec-Zone.ru › pandas 2

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’}

Ось, по которой нужно заполнить пропущенные значения. Когда аргумент DataFrameGroupBy axis равен 0, использование axis=1 даст те же результаты, что и DataFrame.fillna(). Когда аргумент DataFrameGroupBy axis равен 1, использование axis=0 или axis=1 даст те же результаты.

inplace:bool, по умолчанию False

Нерабочий параметр. Не устанавливайте его в значение True.

limit:int, по умолчанию None

Если метод указан, это максимальное количество последовательных пропущенных значений, которые необходимо заполнить вперёд/назад внутри группы. Другими словами, если есть пробел с количеством пропущенных значений больше этого числа, то он будет заполнен частично. Если метод не указан, это максимальное количество записей по всей оси, где будут заполнены пропуски. Должно быть больше 0, если не равно None.

downcast:dict, по умолчанию None

Словарь item->тип данных, к которому следует привести значения при возможности, или строка ‘infer’, которая попытается привести к соответствующему типу (например, float64 к int64, если это возможно).

Возвращаемое значение:
DataFrame

Объект с заполненными пропущенными значениями.

См. также

ffill

Заполнение вперёд значений внутри группы.

bfill

Заполнение назад значений внутри группы.

Примеры

>>> 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API