A função DataFrame.fillna() do Python Pandas é usada para substituir valores ausentes em um DataFrame. Ela simplifica os processos de limpeza de dados e é uma ferramenta útil para desempenhar análises.

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

A função Pandas fillna() aceita a inclusão de até cinco parâmetros e tem a seguinte estrutura:

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

Parâmetros importantes da função Pandas fillna()

É possível ajustar o comportamento da função Pandas DataFrame.fillna() usando diversos parâmetros:

Parâmetro Descrição Valor padrão
value Um valor escalar ou dicionário Python (ou série) para substituir valores NaN None
method Especifica o método de preenchimento, que pode ser progressivo (ffill) ou regressivo (bfill) None
axis Determina em qual eixo desempenhar a operação (0 ou index para linhas, 1 ou columns para colunas) 0
inplace Se verdadeiro (True), as alterações são feitas diretamente no DataFrame original False
limit Um número inteiro que limita a quantidade de valores NaN que serão substituí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 diferentes:

Substituir 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 DataFrames ou em uma Series é interpretado como NaN.

Para substituir 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 substituí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 preenchimento progressivo ffill

Se quiser substituir os valores NaN pelo mesmo valor que os precede na coluna em que eles estão localizados, 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 preenchidos com os valores que os precediam na mesma coluna. Como não havia nenhum valor precedente 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 preenchimento regressivo bfill nas linhas

Os valores NaN também podem ser substituí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 substituí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
Hospedagem web com consultor pessoal

Rápido e escalável, confie na hospedagem da IONOS, que inclui domínio grátis no primeiro ano e endereço de e-mail!

  • Domínio
  • SSL Wildcard
  • Suporte 24 horas
Este artigo foi útil?
Ir para o menu principal