Como limpar dados com a função Pandas dropna()
A função DataFrame.dropna() do Python Pandas é usada para remover todas as linhas ou colunas com valores ausentes (NaN) em um DataFrame. Isso a torna especialmente importante nos processos de preparação e limpeza de dados.
- 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
Qual é a sintaxe da função Pandas dropna()?
A função Pandas dropna() aceita a inclusão de até cinco parâmetros. Esta é sua sintaxe:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)pythonParâmetros importantes da função Pandas dropna()
É possível usar parâmetros para influenciar o comportamento da função Pandas DataFrame.dropna(). Este é um resumo das opções mais importantes:
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
axis
|
Determina se as linhas (0 ou index) ou colunas (1 ou columns) serão removidas
|
0 |
how
|
Especifica se todos (all) ou alguns (any) valores devem ser NaN
|
any
|
thresh
|
Especifica o número mínimo de valores que não são NaN que uma linha ou coluna deve ter para que eles não sejam removidos. Se especificado, o parâmetro how será ignorado
|
optional |
subset
|
Especifica quais linhas ou colunas devem ser levadas em consideração pela função | optional |
inplace
|
Determina se a operação é executada no DataFrame original | False
|
ignore_index
|
Se verdadeiro (True), os eixos restantes são marcados de 0 a n-1
|
False
|
Como usar a função Pandas DataFrame.dropna()
A função Pandas dropna() é usada para limpar os dados antes de desempenhar uma análise. A remoção de linhas ou colunas com valores ausentes previne a ocorrência de vieses em avaliações estatísticas. Como os valores ausentes também podem gerar problemas de visualização de dados, o uso dessa função é vantajoso para produzir gráficos e relatórios.
Remover linhas com valores ausentes
No exemplo abaixo, temos um DataFrame com valores NaN (não numéricos):
import pandas as pd
import numpy as np
# Criar um DataFrame com dados de exemplo
data = {
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)pythonEste será o DataFrame resultante:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12Em seguida, vamos aplicar a função Pandas dropna():
## Remover todas as linhas que contêm pelo menos um valor NaN
df_cleaned = df.dropna()
print(df_cleaned)pythonA execução do código acima produz este resultado:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Como as demais linhas continham valores NaN, apenas as linhas 0 e 3 foram exibidas.
Remover colunas com valores ausentes
Também é possível remover as colunas com valores ausentes ao definir o parâmetro axis como 1:
## Remover todas as colunas que contêm pelo menos um valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)pythonA coluna C é a única que será exibida, pois não contém nenhum valor NaN:
C
0 9
1 10
2 11
3 12Usar o parâmetro thresh
Se quiser remover as linhas que contêm menos que dois valores que não são NaN, use o parâmetro thresh:
## Manter apenas as linhas que têm 2 ou mais valores que não são NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)pythonA execução do código acima produz o seguinte resultado:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12A linha 2 foi removida porque continha menos de dois valores que não são NaN.
Usar o parâmetro subset
O parâmetro subset possibilita que você especifique as colunas nas quais a função deve procurar os valores ausentes. Somente linhas que contêm valores ausentes dentre as colunas especificadas serão removidas.
## Remover todas as linhas em que a coluna A contém um valor NaN
df_subset = df.dropna(subset=['A'])
print(df_subset)pythonNesse caso, somente a linha 2 foi removida. O valor NaN na linha 1 foi ignorado devido ao parâmetro subset, que levou em consideração somente a coluna A:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12
