Olá Flávia tudo bem com você??
Aqui tudo ótimo, obrigado por perguntar =)
Vou te deixar um exemplo aqui embaixo e você pode ir praticando variações para fixar!
Primeiro faça o import das bibliotecas
import pandas as pd
import numpy as np
Depois a criação do DF ( no seu caso, acredito que você já tenha um montado)
#Criando um DataFrame
col1 = [0, 1, np.nan, np.nan, np.nan, np.nan]
col2 = [0, 2, np.nan, 3, np.nan, np.nan]
col3 = [0, 2, np.nan, 3, 1, 0]
matriz = {'X': col1,'Y': col2,'Z': col3}
df = pd.DataFrame(data=matriz)
df
X Y Z
0 0.0 0.0 0.0
1 1.0 2.0 2.0
2 NaN NaN NaN
3 NaN 3.0 3.0
4 NaN NaN 1.0
5 NaN NaN 0.0
Agora a aplicação do ffill (pode trocar pelo bfill aqui também)
df.loc[:,'X'] = df.loc[:, 'X'].ffill()
df
X Y Z
0 0.0 0.0 0.0
1 1.0 2.0 2.0
2 1.0 NaN NaN
3 1.0 3.0 3.0
4 1.0 NaN 1.0
5 1.0 NaN 0.0
Espero que eu tenha te ajudado! Se ainda ficou alguma dúvida, só voltar aqui!