Метод fillna
Метод fillna применяется к DataFrame
и заменяет пропущенные значения NaN на переданное
значение или по заданной стратегии. Основным параметром
передается значение для заполнения. Дополнительно можно
указать метод заполнения ffill или bfill,
а также ограничить количество заполнений через параметр
limit.
Синтаксис
df.fillna(value[, method, axis, inplace, limit])
Пример
Давайте заменим все пропуски в таблице на число 0:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, np.nan, 5],
'b': [10, 20, np.nan, 40, 50]
})
res = df.fillna(0)
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 0.0 20.0
2 3.0 0.0
3 0.0 40.0
4 5.0 50.0
Пример
Теперь заполним пропуски средним значением соответствующих столбцов:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, np.nan, 5],
'b': [10, 20, np.nan, 40, 50]
})
res = df.fillna(df.mean())
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 3.0 20.0
2 3.0 30.0
3 3.0 40.0
4 5.0 50.0
Пример
Заполним пропуски предыдущим значением с помощью
метода ffill:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, np.nan, 5],
'b': [10, 20, np.nan, 40, 50]
})
res = df.fillna(method='ffill')
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 1.0 20.0
2 3.0 20.0
3 3.0 40.0
4 5.0 50.0
Пример
Заполним пропуски следующим значением с помощью
метода bfill и ограничим количество
заполнений до 1 в каждом столбце:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [np.nan, np.nan, 3, np.nan, 5],
'b': [10, 20, np.nan, np.nan, 50]
})
res = df.fillna(method='bfill', limit=1)
print(res)
Результат выполнения кода:
a b
0 NaN 10.0
1 3.0 20.0
2 3.0 NaN
3 5.0 NaN
4 5.0 50.0
Пример
Заполним пропуски разными значениями для разных столбцов с помощью словаря:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, np.nan, 5],
'b': [10, 20, np.nan, 40, 50]
})
res = df.fillna({'a': 0, 'b': 100})
print(res)
Результат выполнения кода:
a b
0 1.0 10.0
1 0.0 20.0
2 3.0 100.0
3 0.0 40.0
4 5.0 50.0
Смотрите также
-
метод
dropna,
который удаляет строки с пропущенными значениями -
метод
isna,
который определяет, являются ли значения пропущенными -
метод
notna,
который проверяет, не являются ли значения пропущенными -
метод
interpolate,
который интерполирует пропущенные значения