Spec-Zone.ru › pandas 0.21

pandas.DataFrame.fillna

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

Заполнение пропущенных значений (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 или ‘index’, 1 или ‘columns’}

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

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

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

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

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

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

Возвращает:

filled : DataFrame

См. также

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.21.1/generated/pandas.DataFrame.fillna.html

Spec-Zone.ru

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