pandas.core.groupby.DataFrameGroupBy.fillna#
-
DataFrameGroupBy.fillna(value=None, method=None, axis=
, inplace=False, limit=None, downcast= )[источник]# Заполнить значения NA/NaN с использованием указанного метода внутри групп.
Устарело с версии 2.2.0: Этот метод устарел и будет удалён в будущей версии. Используйте
DataFrameGroupBy.ffill()илиDataFrameGroupBy.bfill()для заполнения вперёд или назад. Если вы хотите заполнить одним значением, используйтеDataFrame.fillna()вместо этого.- Параметры:
- значениескаляр, словарь, Series или DataFrame
Значение для заполнения пропусков (например, 0), альтернативно словарь/Series/DataFrame значений, указывающих, какое значение использовать для каждого индекса (для Series) или столбца (для DataFrame). Значения, не находящиеся в словаре/Series/DataFrame, не будут заполнены. Это значение не может быть списком. Пользователи, желающие использовать
valueаргумент, а неmethodследует предпочитатьDataFrame.fillna()так как это даст тот же результат и будет более производительным.- метод{{'bfill', 'ffill', None}}, по умолчанию None
Метод для заполнения пропусков.
'ffill'будет распространять последнее допустимое наблюдение вперёд внутри группы.'bfill'будет использовать следующее допустимое наблюдение для заполнения пробела.- ось{0 или ‘index’, 1 или ‘columns’}
Ось, вдоль которой заполнять пропущенные значения. Когда
DataFrameGroupByaxisаргумент является0, используяaxis=1здесь будет давать такие же результаты, какDataFrame.fillna(). КогдаDataFrameGroupByaxisаргумент является1, используяaxis=0илиaxis=1здесь даст те же результаты.- inplacebool, по умолчанию False
Сломан. Не устанавливайте в True.
- limitint, по умолчанию None
Если указан метод, это максимальное количество последовательных значений NaN для заполнения вперед/назад внутри группы. Другими словами, если есть промежуток с более чем этим количеством последовательных NaN, он будет заполнен только частично. Если метод не указан, это максимальное количество записей вдоль всей оси, где NaN будут заполнены. Должно быть больше 0, если не None.
- downcastdict, по умолчанию None
Словарь элемент->тип данных для понижения типа, если возможно, или строка 'infer', которая попытается понизить тип до соответствующего равного типа (например, float64 до int64, если возможно).
- Возвращает:
- DataFrame
Объект с заполненными пропущенными значениями.
Смотрите также
Примеры
>>> df = pd.DataFrame( ... { ... "key": [0, 0, 1, 1, 1], ... "A": [np.nan, 2, np.nan, 3, np.nan], ... "B": [2, 3, np.nan, np.nan, np.nan], ... "C": [np.nan, np.nan, 2, np.nan, np.nan], ... } ... ) >>> df key A B C 0 0 NaN 2.0 NaN 1 0 2.0 3.0 NaN 2 1 NaN NaN 2.0 3 1 3.0 NaN NaN 4 1 NaN NaN NaN
Распространение ненулевых значений вперёд или назад внутри каждой группы по столбцам.
>>> df.groupby("key").fillna(method="ffill") A B C 0 NaN 2.0 NaN 1 2.0 3.0 NaN 2 NaN NaN 2.0 3 3.0 NaN 2.0 4 3.0 NaN 2.0
>>> df.groupby("key").fillna(method="bfill") A B C 0 2.0 2.0 NaN 1 2.0 3.0 NaN 2 3.0 NaN 2.0 3 3.0 NaN NaN 4 NaN NaN NaN
Распространение ненулевых значений вперед или назад внутри каждой группы вдоль строк.
>>> df.T.groupby(np.array([0, 0, 1, 1])).fillna(method="ffill").T key A B C 0 0.0 0.0 2.0 2.0 1 0.0 2.0 3.0 3.0 2 1.0 1.0 NaN 2.0 3 1.0 3.0 NaN NaN 4 1.0 1.0 NaN NaN
>>> df.T.groupby(np.array([0, 0, 1, 1])).fillna(method="bfill").T key A B C 0 0.0 NaN 2.0 NaN 1 0.0 2.0 3.0 NaN 2 1.0 NaN 2.0 2.0 3 1.0 3.0 NaN NaN 4 1.0 NaN NaN NaN
Заменять только первый элемент NaN в группе по строкам.
>>> df.groupby("key").fillna(method="ffill", limit=1) A B C 0 NaN 2.0 NaN 1 2.0 3.0 NaN 2 NaN NaN 2.0 3 3.0 NaN 2.0 4 3.0 NaN NaN