pandas.DataFrame.fillna
-
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)[source] -
Заполнение значений NaN/NA указанным методом
Параметры: значение : скаляр, словарь, Series или DataFrame
Значение для заполнения пропусков (например, 0), альтернативно словарь/Series/DataFrame со значениями, указывающими, какое значение использовать для каждого индекса (для Series) или столбца (для DataFrame). (значения, отсутствующие в словаре/Series/DataFrame, не будут заполнены). Это значение не может быть списком.
метод : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, по умолчанию None
Метод для заполнения пропусков в переиндексированных Series pad / ffill: распространить последнее действительное наблюдение вперед до следующего действительного backfill / bfill: использовать следующее действительное наблюдение для заполнения пробела
ось : {0 или ‘index’, 1 или ‘columns’}
inplace : булево, по умолчанию False
Если True, заполнить на месте. Примечание: это изменит все другие представления этого объекта (например, срез без копирования для столбца в DataFrame).
предел : целое число, по умолчанию None
Если метод указан, это максимальное количество последовательных значений NaN, которые следует заполнить вперед/назад. Другими словами, если есть пробел с более чем этим количеством последовательных значений NaN, он будет заполнен только частично. Если метод не указан, это максимальное количество записей по всей оси, где будут заполнены NaN. Должен быть больше 0, если не None.
downcast : словарь, по умолчанию None
словарь item->dtype для приведения к меньшему типу, если это возможно, или строка ‘infer’, которая будет пытаться привести к соответствующему типу (например, float64 к int64, если это возможно)
Возвращает: заполненное : DataFrame
Примеры
>>> 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.22.0/generated/pandas.DataFrame.fillna.html