DataFrame.fillna() / Series.fillna()
Метод fillna() заменяет пропущенные значения (NaN, NaT, None) на указанное значение или значения, вычисленные по соседним элементам. Один из основных инструментов очистки данных.
Сигнатура
DataFrame.fillna(value=None, *, method=None, axis=None,
inplace=False, limit=None, downcast=None)
Параметры
value— скаляр, словарь,SeriesилиDataFrame. Значение(я) для подстановки.method— устаревший параметр (используйтеffill()/bfill()):'ffill','bfill'.axis—0(по строкам) или1(по столбцам).inplace— изменить объект на месте (по умолчаниюFalse).limit— максимум подряд идущихNaNдля заполнения.
Возвращаемое значение
DataFrame или Series того же размера с заполненными пропусками. При inplace=True возвращает None.
Примеры
Пример 1. Заполнение константой
import pandas as pd
import numpy as np
s = pd.Series([1.0, np.nan, 3.0, np.nan, 5.0])
print(s.fillna(0))
0 1.0
1 0.0
2 3.0
3 0.0
4 5.0
dtype: float64
Пример 2. Разные значения для разных столбцов
Показания датчиков Arduino: пропуски заменяем средним по каждому типу.
import pandas as pd
import numpy as np
df = pd.DataFrame({
"temp": [22.1, np.nan, 23.0, np.nan],
"humidity": [55, 60, np.nan, 58],
})
print(df.fillna({"temp": 22.5, "humidity": 57}))
temp humidity
0 22.1 55.0
1 22.5 60.0
2 23.0 57.0
3 22.5 58.0
Пример 3. Заполнение средним по столбцу
import pandas as pd
import numpy as np
df = pd.DataFrame({"v": [10.0, np.nan, 20.0, np.nan, 30.0]})
print(df.fillna(df.mean()))
v
0 10.0
1 20.0
2 20.0
3 20.0
4 30.0
Пример 4. Forward fill (предыдущее значение)
import pandas as pd
import numpy as np
s = pd.Series([1, np.nan, np.nan, 4, np.nan])
print(s.ffill())
0 1.0
1 1.0
2 1.0
3 4.0
4 4.0
dtype: float64
Пример 5. Ограничение количества заполнений
import pandas as pd
import numpy as np
s = pd.Series([1, np.nan, np.nan, np.nan, 5])
print(s.fillna(0, limit=2))
0 1.0
1 0.0
2 0.0
3 NaN
4 5.0
dtype: float64
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.