pandas.DataFrame.fillna
-
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)[source] -
Заполнение значений NaN/NA указанным методом.
Параметры: -
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 : boolean, default False -
Если True, заполнение происходит на месте. Примечание: это изменит любые другие представления этого объекта (например, некопируемый срез столбца в DataFrame).
-
limit : int, default None -
Если метод указан, это максимальное количество последовательных значений NaN для заполнения вперёд/назад. Другими словами, если есть пробел с более чем этим числом последовательных NaN, он будет заполнен только частично. Если метод не указан, это максимальное количество записей по всей оси, где будут заполнены NaN. Должно быть больше 0, если не None.
-
downcast : dict, default is None -
Словарь item->dtype того, что можно принудительно привести к меньшему размеру, или строка ‘infer’, которая попытается привести к соответствующему типу (например, float64 к int64, если это возможно).
Возвращает: -
filled : 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Мы также можем распространять значения, отличные от 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.24.2/reference/api/pandas.DataFrame.fillna.html