2
respostas

Limite de preenchimento não funcionando

Ao criar a lista abaixo:

data = [0.5, None, 0.57, None, None, 0.7, 0.8, None, 0, 0.5, None]
s = pd.Series(data)

Tentei implementar o .fillna com o método 'ffill' e limite = 1, o que deveria me devolver a series com apenas o primeiro 'None' peenchido. Código a seguir:

s.fillna(method = 'ffill', limit = 1)

Porém, ao rodá-lo, mais valores, além do primeiro 'None' de cima para baixo, são preenchidos, o que não deveria acontecer ao colocarmos o limite = 1.

Poderiam me ajudar a encontrar meu erro? Ou o problema está na função? Obrigado!

2 respostas

Oi Gabriel, tudo bem? Esse limite indica que será substituído somente um valor None por vez caso eles estejam em sequência. Mas todos os None que estão entre valores serão substituídos. Exemplo: data = [0.5, None, 0.57, None, None, 0.7, 0.8, None, 0, 0.5, None]

Nesse caso, ficaria: 0.5, 0.5, 0.57, 0.57, NaN, 0.70, 0.80, 0.80, 0.00, 0.50, 0.50. Já que o limite foi 1. Se usar limite 2, aí sim todos os None serão substituídos.

Acho que é isso...

Olá Gabriel,

Esse é o funcionamento correto do limit mesmo, ele só vai afetar valores na repetidos, veja que apenas onde temos mais de um valor None juntos é que ele fez o fillna pular, como o Helano falou.

Confere no vídeo novamente a partir do minuto 5 que o professor mostra esse detalhe do limit