Метод ffill
Метод ffill применяется к DataFrame
и заполняет пропущенные значения (NaN) значениями из предыдущих
строк (или столбцов). По умолчанию заполнение происходит
по вертикали (вниз). Метод особенно полезен при работе
с временными рядами и последовательными данными, где
пропуски можно логично заполнить предыдущими значениями.
Основной параметр axis определяет направление заполнения:
0 или 'index' для заполнения вниз по строкам,
1 или 'columns' для заполнения вправо по столбцам.
Синтаксис
df.ffill([axis], [inplace], [limit], [downcast])
Пример
Давайте создадим таблицу с пропущенными значениями и заполним их предыдущими значениями по умолчанию:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, 4],
'b': [10, 20, np.nan, 40]
})
print(df.ffill())
Результат выполнения кода:
a b
0 1.0 10.0
1 1.0 20.0
2 3.0 20.0
3 4.0 40.0
Пример
Теперь заполним пропуски по строкам с ограничением на количество последовательных заполнений:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, np.nan, 4],
'b': [10, np.nan, 30, 40]
})
print(df.ffill(limit=1))
Результат выполнения кода:
a b
0 1.0 10.0
1 1.0 10.0
2 NaN 30.0
3 4.0 40.0
Пример
Заполним пропуски по столбцам (горизонтально)
с помощью параметра axis:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [np.nan, np.nan, 6],
'c': [np.nan, 8, 9]
})
print(df.ffill(axis=1))
Результат выполнения кода:
a b c
0 1.0 1.0 1.0
1 2.0 2.0 8.0
2 3.0 6.0 9.0
Пример
Используем параметр inplace для изменения
исходной таблицы без создания копии:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3],
'b': [np.nan, 20, 30]
})
df.ffill(inplace=True)
print(df)
Результат выполнения кода:
a b
0 1.0 NaN
1 1.0 20.0
2 3.0 30.0
Смотрите также
-
метод
fillna,
который заполняет пропуски указанным значением -
метод
bfill,
который заполняет пропуски следующими значениями -
метод
interpolate,
который интерполирует пропущенные значения -
метод
dropna,
который удаляет строки с пропущенными значениями