Spec-Zone.ru › pandas 0.25

pandas.DataFrame.fillna

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

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

Параметры:
value : scalar, dict, Series, or DataFrame

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

method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None

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

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

Ось, по которой заполняются пропущенные значения.

inplace : bool, default False

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

limit : int, default None

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

downcast : dict, default is None

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

Возвращаемое значение:
DataFrame

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

См. также

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, 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

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

>>> 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.25.0/reference/api/pandas.DataFrame.fillna.html

Spec-Zone.ru

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