A função DataFrame.fillna() do Python Pandas é usada para subs­ti­tuir valores ausentes em um DataFrame. Ela sim­pli­fica os processos de limpeza de dados e é uma fer­ra­menta útil para de­sem­pe­nhar análises.

Qual é a sintaxe da função Pandas fillna()?

A função Pandas fillna() aceita a inclusão de até cinco pa­râ­me­tros e tem a seguinte estrutura:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
python

Pa­râ­me­tros im­por­tan­tes da função Pandas fillna()

É possível ajustar o com­por­ta­mento da função Pandas DataFrame.fillna() usando diversos pa­râ­me­tros:

Parâmetro Descrição Valor padrão
value Um valor escalar ou di­ci­o­ná­rio Python (ou série) para subs­ti­tuir valores NaN None
method Es­pe­ci­fica o método de pre­en­chi­mento, que pode ser pro­gres­sivo (ffill) ou re­gres­sivo (bfill) None
axis Determina em qual eixo de­sem­pe­nhar a operação (0 ou index para linhas, 1 ou columns para colunas) 0
inplace Se ver­da­deiro (True), as al­te­ra­Ã§Ãµes são feitas di­re­ta­mente no DataFrame original False
limit Um número inteiro que limita a quan­ti­dade de valores NaN que serão subs­ti­tuí­dos None
Nota

Nas versões futuras do Pandas, é provável que o parâmetro methoddeixe de ser suportado. Em seu lugar, você poderá usar obj.ffill() ou obj.bfill(), já que essas funções têm o mesmo efeito do parâmetro method.

Como usar a função Pandas DataFrame.fillna()

A função Pandas fillna() pode ser usada de diversas formas di­fe­ren­tes:

Subs­ti­tuir valores NaN por um valor fixo

Primeiro, vamos criar um DataFrame:

import pandas as pd
# Exemplo de DataFrame com valores diferentes
data = {
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4],
    'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
python

O DataFrame ficará assim:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  NaN
2  NaN  3.0  3.0
3  4.0  4.0  4.0
Nota

No Pandas, o valor None em um Da­ta­Fra­mes ou em uma Series é in­ter­pre­tado como NaN.

Para subs­ti­tuir os valores ausentes por 0, use a função Pandas fillna():

# Substituir valores ausentes por 0
df_filled = df.fillna(0)
print(df_filled)
python

Como resultado, todos os valores NaN serão subs­ti­tuí­dos por 0:

A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  3.0
3  4.0  4.0  4.0

Usar o método de pre­en­chi­mento pro­gres­sivo ffill

Se quiser subs­ti­tuir os valores NaN pelo mesmo valor que os precede na coluna em que eles estão lo­ca­li­za­dos, use o método ffill como parâmetro:

# Substituir todos os valores NaN pelo valor que os precede
df_ffill = df.fillna(method='ffill')
print(df_ffill)
python

Neste exemplo, os campos NaN nas colunas A e C foram pre­en­chi­dos com os valores que os precediam na mesma coluna. Como não havia nenhum valor pre­ce­dente na coluna B para a linha 0, o valor NaN foi mantido:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  3.0
3  4.0  4.0  4.0

Usar o método de pre­en­chi­mento re­gres­sivo bfill nas linhas

Os valores NaN também podem ser subs­ti­tuí­dos pelos valores seguintes dentro da mesma linha. Para fazer isso, use o método bfill e defina o parâmetro axis como 1:

df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
python

O resultado mostra que os valores NaN nas linhas 0 e 2 foram subs­ti­tuí­dos pelos valores que os sucediam. No entanto, o valor NaN na linha 1 foi mantido, já que ele era o último dessa linha:

A    B    C
0  1.0  1.0  1.0
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  4.0  4.0  4.0
Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana
Ir para o menu principal