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!
--
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!
--
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:
| S | Backfill (limit = None) | Backfill (limit = 1) | Backfill (limit = 2) | |
|---|---|---|---|---|
| 0 | 0.50 | 0.50 | 0.50 | 0.50 |
| 1 | NaN | 0.52 | NaN | 0.52 |
| 2 | NaN | 0.52 | 0.52 | 0.52 |
| 3 | 0.52 | 0.52 | 0.52 | 0.52 |
| 4 | 0.54 | 0.54 | 0.54 | 0.54 |
| 5 | NaN | 0.59 | NaN | 0.59 |
| 6 | NaN | 0.59 | 0.59 | 0.59 |
| 7 | 0.59 | 0.59 | 0.59 | 0.59 |
| 8 | 0.60 | 0.60 | 0.60 | 0.60 |
| 9 | NaN | 0.70 | 0.70 | 0.70 |
| 10 | 0.70 | 0.70 | 0.70 | 0.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!