3
respostas

Aula 06 - Métodos de Interpolação - Pandas

0     0.50
1     0.50
2      NaN
3     0.52
4     0.54
5     0.54
6      NaN
7     0.59
8     0.60
9     0.60
10    0.70
dtype: float64

Porque ao executar o código abaixo na Series acima (s1), mesmo com o parâmetro 'limit = 1' especificado, ocorre também a alteração do segundo valor nulo(índice 6)

s1.fillna(method = 'bfill',limit = 1)

Resultado:

0     0.50
1     0.50
2     0.52
3     0.52
4     0.54
5     0.54
6     0.59
7     0.59
8     0.60
9     0.60
10    0.70
dtype: float64
3 respostas

Luiz,

O parâmetro limit leva em consideração valores consecutivos e na sua Series, o valores não estão em sequência.

Adicionei mais um valor nulo (em sequência) na sua Series:

0     0.50
1     0.50
2      NaN
3      NaN
4     0.54
5     0.54
6      NaN
7     0.59
8     0.60
9     0.60
10    0.70
dtype: float64

E executei o fillna da mesma maneira:

0     0.50
1     0.50
2      NaN
3     0.54
4     0.54
5     0.54
6     0.59
7     0.59
8     0.60
9     0.60
10    0.70
dtype: float64

Veja que neste exemplo, usando o bfill, o valor do índice 3 foi preenchido e o do índice 2 não.

Entendi, Nicolas! Obrigado! Então ele vai preencher o primeiro valor de cada sequencia de NaN consecutivos né isso?

Luiz,

No seu exemplo sim. O número que você indicar no parâmetro limit definirá quantos valores serão preenchidos.