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 es­pe­ci­al­mente im­por­tante nos processos de pre­pa­ra­ção e limpeza de dados.

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

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

A função Pandas dropna() aceita a inclusão de até cinco pa­râ­me­tros. Esta é sua sintaxe:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

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

É possível usar pa­râ­me­tros para in­flu­en­ciar o com­por­ta­mento da função Pandas DataFrame.dropna(). Este é um resumo das opções mais im­por­tan­tes:

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 Es­pe­ci­fica se todos (all) ou alguns (any) valores devem ser NaN any
thresh Es­pe­ci­fica 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 es­pe­ci­fi­cado, o parâmetro how será ignorado optional
subset Es­pe­ci­fica quais linhas ou colunas devem ser levadas em con­si­de­ra­Ã§Ã£o pela função optional
inplace Determina se a operação é executada no DataFrame original False
ignore_index Se ver­da­deiro (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 de­sem­pe­nhar uma análise. A remoção de linhas ou colunas com valores ausentes previne a ocor­rên­cia de vieses em ava­li­a­ções es­ta­tís­ti­cas. Como os valores ausentes também podem gerar problemas de vi­su­a­li­za­ção de dados, o uso dessa função é vantajoso para produzir gráficos e re­la­tó­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)
python

Este será o DataFrame re­sul­tante:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

Em 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)
python

A execução do código acima produz este resultado:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Como 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)
python

A coluna C é a única que será exibida, pois não contém nenhum valor NaN:

C
0   9
1  10
2  11
3  12

Usar 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)
python

A 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  12

A 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 pos­si­bi­lita que você es­pe­ci­fi­que as colunas nas quais a função deve procurar os valores ausentes. Somente linhas que contêm valores ausentes dentre as colunas es­pe­ci­fi­ca­das 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)
python

Nesse caso, somente a linha 2 foi removida. O valor NaN na linha 1 foi ignorado devido ao parâmetro subset, que levou em con­si­de­ra­çã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
Ir para o menu principal