pandas.Series.fillna
- Series.fillna(value=None, *, method=None, axis=None, inplace=False, limit=None, downcast=_NoDefault.no_default)[source]
-
Заполнение пропущенных значений NA/NaN с использованием указанного метода.
- Параметры:
-
- value:скаляр, словарь, Series или DataFrame
-
Значение для заполнения пропусков (например, 0), или словарь/Series/DataFrame со значениями, определяющими, какое значение использовать для каждого индекса (для Series) или столбца (для DataFrame). Значения, отсутствующие в словаре/Series/DataFrame, не будут заполнены. Это значение не может быть списком.
- method:{‘backfill’, ‘bfill’, ‘ffill’, None}, по умолчанию None
-
Метод для заполнения пропусков в переиндексированном Series:
ffill: распространить последнее действительное наблюдение вперед на следующее действительное.
backfill / bfill: использовать следующее действительное наблюдение для заполнения пробела.
Устаревшее начиная с версии 2.1.0: Используйте вместо этого ffill или bfill.
- axis:{0 или ‘index’} для Series, {0 или ‘index’, 1 или ‘columns’} для DataFrame
-
Ось, по которой заполняются пропущенные значения. Для Series этот параметр не используется и по умолчанию равен 0.
- inplace:bool, по умолчанию False
-
Если True, заполнить на месте. Примечание: это изменит любые другие представления этого объекта (например, срез без копирования для столбца в DataFrame).
- limit:int, по умолчанию None
-
Если метод указан, это максимальное количество последовательных значений NaN, которые нужно заполнить вперед/назад. Другими словами, если есть пробел с количеством последовательных значений NaN, превышающим это число, он будет заполнен только частично. Если метод не указан, это максимальное количество элементов по всей оси, где будут заполнены NaN. Должно быть больше 0, если не None.
- downcast:словарь, по умолчанию None
-
Словарь item->dtype, что преобразовать, если возможно, или строка ‘infer’, которая попытается преобразовать в соответствующий эквивалентный тип (например, float64 в int64, если возможно).
Устаревшее начиная с версии 2.2.0.
- Возвращаемое значение:
-
- Series/DataFrame или None
-
Объект с заполненными пропущенными значениями или None, если
inplace=True.
См. также
ffill-
Заполнение значений путем распространения последнего действительного наблюдения на следующее действительное.
bfill-
Заполнение значений с использованием следующего действительного наблюдения для заполнения пробела.
interpolate-
Заполнение пропущенных значений с помощью интерполяции.
reindex-
Соответствие объекта новому индексу.
asfreq-
Преобразование TimeSeries к указанной частоте.
Примеры
>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0], ... [3, 4, np.nan, 1], ... [np.nan, np.nan, np.nan, np.nan], ... [np.nan, 3, np.nan, 4]], ... columns=list("ABCD")) >>> df A B C D 0 NaN 2.0 NaN 0.0 1 3.0 4.0 NaN 1.0 2 NaN NaN NaN NaN 3 NaN 3.0 NaN 4.0Замена всех элементов NaN на 0.
>>> df.fillna(0) A B C D 0 0.0 2.0 0.0 0.0 1 3.0 4.0 0.0 1.0 2 0.0 0.0 0.0 0.0 3 0.0 3.0 0.0 4.0Замена всех элементов 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.0 1 3.0 4.0 2.0 1.0 2 0.0 1.0 2.0 3.0 3 0.0 3.0 2.0 4.0Замена только первого элемента NaN.
>>> df.fillna(value=values, limit=1) A B C D 0 0.0 2.0 2.0 0.0 1 3.0 4.0 NaN 1.0 2 NaN 1.0 NaN 3.0 3 NaN 3.0 NaN 4.0При заполнении с помощью DataFrame, замена происходит по тем же именам столбцов и тем же индексам.
>>> df2 = pd.DataFrame(np.zeros((4, 4)), columns=list("ABCE")) >>> df.fillna(df2) A B C D 0 0.0 2.0 0.0 0.0 1 3.0 4.0 0.0 1.0 2 0.0 0.0 0.0 NaN 3 0.0 3.0 0.0 4.0Обратите внимание, что столбец D не затронут, так как он отсутствует в df2.
© 2008–2022, 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/2.2.2/reference/api/pandas.Series.fillna.html