Spec-Zone.ru › pandas 1

pandas.core.groupby.DataFrameGroupBy.fillna

propertyDataFrameGroupBy.fillna[source]

Заполнение пропущенных значений (NaN) указанным методом.

Параметры
значение:скаляр, словарь, Series или DataFrame

Значение для заполнения пропусков (например, 0), или словарь/Series/DataFrame со значениями, указывающими, какое значение использовать для каждого индекса (для Series) или столбца (для DataFrame). Значения, отсутствующие в словаре/Series/DataFrame, не будут заполнены. Это значение не может быть списком.

метод:{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, по умолчанию None

Метод заполнения пропусков в переиндексированных Series pad / ffill: распространение последнего действительного наблюдения вперёд к следующему действительному backfill / bfill: использование следующего действительного наблюдения для заполнения пробела.

ось:{0 или ‘индекс’, 1 или ‘столбцы’}

Ось, по которой заполняются пропущенные значения. Для Series этот параметр не используется и по умолчанию равен 0.

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

Если True, заполнение происходит на месте. Примечание: это изменит любые другие представления этого объекта (например, срез без копирования для столбца в DataFrame).

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

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

downcast:словарь, по умолчанию None

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

Возвращает
DataFrame или None

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

См. также

interpolate

Заполнение NaN-значений с помощью интерполяции.

reindex

Приведение объекта к новому индексу.

asfreq

Преобразование TimeSeries к указанной частоте.

Примеры

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
...                    [3, 4, np.nan, 1],
...                    [np.nan, np.nan, np.nan, np.nan],
...                    [np.nan, 3, np.nan, 4]],
...                   columns=list("ABCD"))
>>> df
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  NaN  NaN NaN  NaN
3  NaN  3.0 NaN  4.0

Замена всех элементов NaN на 0.

>>> df.fillna(0)
     A    B    C    D
0  0.0  2.0  0.0  0.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  0.0
3  0.0  3.0  0.0  4.0

Мы также можем распространять непустые значения вперёд или назад.

>>> df.fillna(method="ffill")
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  3.0  4.0 NaN  1.0
3  3.0  3.0 NaN  4.0

Замена всех элементов NaN в столбцах ‘A’, ‘B’, ‘C’ и ‘D’ соответственно на 0, 1, 2 и 3.

>>> values = {"A": 0, "B": 1, "C": 2, "D": 3}
>>> df.fillna(value=values)
     A    B    C    D
0  0.0  2.0  2.0  0.0
1  3.0  4.0  2.0  1.0
2  0.0  1.0  2.0  3.0
3  0.0  3.0  2.0  4.0

Замена только первого элемента NaN.

>>> df.fillna(value=values, limit=1)
     A    B    C    D
0  0.0  2.0  2.0  0.0
1  3.0  4.0  NaN  1.0
2  NaN  1.0  NaN  3.0
3  NaN  3.0  NaN  4.0

При заполнении с помощью DataFrame, замена происходит по тем же именам столбцов и тем же индексам.

>>> df2 = pd.DataFrame(np.zeros((4, 4)), columns=list("ABCE"))
>>> df.fillna(df2)
     A    B    C    D
0  0.0  2.0  0.0  0.0
1  3.0  4.0  0.0  1.0
2  0.0  0.0  0.0  NaN
3  0.0  3.0  0.0  4.0

Обратите внимание, что столбец D не затронут, так как он отсутствует в df2.

© 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/1.5.0/reference/api/pandas.core.groupby.DataFrameGroupBy.fillna.html

Spec-Zone.ru

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