1
resposta

Dúvida - s1.fillna(method = 'bfill', limit = 1)

Bom dia! Ao executar os códigos da atividade extra de Métodos de Interpolação, ao usar o bfill com limit =1, pelo que notei, alterou os 2 NaN no final, ele não deveria atualizar somente 1 registro? Abraço!

--

1 resposta

Olá, Antonio, tudo bem?

Na verdade, o comportamento deveria ser justamente esse com o DataSeries s. Foi apenas uma pequena confusão em relação ao comportamento do parâmetro limit. Esse parâmetro não dita a quantidade de NaNs que serão preenchidos, mas o número máximo consecutivo de valores NaN que serão preenchidos no forward/backfill.

Explicando de uma forma mais direta, se você tem um gap com mais NANs do que o número do que você especificou no parâmetro limit, apenas uma parte deles serão preenchidos. Um detalhe é que se não definir o limite, o gap com o maior número de NaNs será o limite.

Exemplificando, se usarmos o Data Series s alterando para o caso do limit None, 1 e 2, teremos:

SBackfill (limit = None)Backfill (limit = 1)Backfill (limit = 2)
00.500.500.500.50
1NaN0.52NaN0.52
2NaN0.520.520.52
30.520.520.520.52
40.540.540.540.54
5NaN0.59NaN0.59
6NaN0.590.590.59
70.590.590.590.59
80.600.600.600.60
9NaN0.700.700.70
100.700.700.700.70

Nota-se que tanto o None quanto o limit = 2 tiveram comportamentos idênticos. Isso porque o gap máximo de NaNs é igual a 2 e o parâmetro quando suprimido escolhe o valor máximo.

Para complementar seu estudo e aprender as potencialidades da biblioteca pandas e do método fillna(), indicamos a leitura da sua documentação.

Espero ter ajudado e qualquer dúvida é só chamar!

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!