Spec-Zone.ru › pandas 2

pandas.DataFrame.fillna

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

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

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

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

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

См. также

ffill

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

bfill

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

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

Замена всех элементов 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.DataFrame.fillna.html

Spec-Zone.ru

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