Spec-Zone.ru › pandas 2

pandas.Series.fillna

Series.fillna(value=None, *, method=None, axis=None, inplace=False, limit=None, downcast=_NoDefault.no_default)[source]

Заполнение пропущенных значений NA/NaN с использованием указанного метода.

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

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

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

Метод для заполнения пропусков в переиндексированном Series:

  • ffill: распространить последнее действительное наблюдение вперед на следующее действительное.

  • backfill / bfill: использовать следующее действительное наблюдение для заполнения пробела.

Устаревшее начиная с версии 2.1.0: Используйте вместо этого ffill или bfill.

axis:{0 или ‘index’} для Series, {0 или ‘index’, 1 или ‘columns’} для DataFrame

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

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

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

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

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

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

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

Устаревшее начиная с версии 2.2.0.

Возвращаемое значение:
Series/DataFrame или None

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

См. также

ffill

Заполнение значений путем распространения последнего действительного наблюдения на следующее действительное.

bfill

Заполнение значений с использованием следующего действительного наблюдения для заполнения пробела.

interpolate

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

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

Замена всех элементов 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/2.2.2/reference/api/pandas.Series.fillna.html

Spec-Zone.ru

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