Spec-Zone.ru › pandas 0.23

pandas.DataFrame.fillna

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs) [source]

Заполнение значений NA/NaN указанным методом

Параметры:

value : скаляр, словарь, Series или DataFrame

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

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

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

axis : {0 or ‘index’, 1 or ‘columns’}

inplace : булево, по умолчанию False

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

limit : целое число, по умолчанию None

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

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

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

Возвращает:
filled : DataFrame

См. также

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

reindex, asfreq

Примеры

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

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

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

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

>>> df.fillna(method='ffill')
    A   B   C   D
0   NaN 2.0 NaN 0
1   3.0 4.0 NaN 1
2   3.0 4.0 NaN 5
3   3.0 3.0 NaN 4

Замена всех элементов 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
1   3.0 4.0 2.0 1
2   0.0 1.0 2.0 5
3   0.0 3.0 2.0 4

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

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

© 2008–2012, 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/0.23.4/generated/pandas.DataFrame.fillna.html

Spec-Zone.ru

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