O que é e como usar a função Pandas fillna()
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)pythonParâ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
|
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)pythonO 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.0No 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)pythonComo 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.0Usar 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)pythonNeste 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.0Usar 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)pythonO 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- Fique online com 99,99% de tempo de atividade e segurança robusta
- Aumente o desempenho 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

