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!