Guia rápido sobre o método Pandas dropna()
A função DataFrame.dropna() da Biblioteca Python Pandas é utilizada para eliminar todas as linhas ou colunas de um DataFrame que contenham valores em falta (NaN). É, portanto, uma das principais ferramentas para a preparação e limpeza de dados.
Sintaxe de dropna() em Pandas
A função dropna() do Pandas aceita até cinco parâmetros e a sua sintaxe básica é bastante simples:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)pythonParâmetros relevantes
O comportamento da função DataFrame.dropna() pode ser influenciado pelos parâmetros que lhe são passados. Os parâmetros mais importantes estão resumidos na tabela seguinte:
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
axis
|
Determina se as linhas (0 ou index) e colunas (1 ou columns) são eliminadas
|
0 |
how
|
Indica se todos os valores devem ser incluídos (all) ou apenas alguns valores NaN (any)
|
any
|
tresh
|
Indica o número mínimo de valores não NaN que uma linha ou coluna deve ter para não ser eliminada. Não pode ser combinado com o parâmetro how
|
opcional |
subset
|
Determina quais linhas ou colunas devem ser consideradas | opcional |
inplace
|
Decide se a operação é realizada no DataFrame original | False
|
ignore_index
|
Se for verdadeiro ou True, os eixos restantes serão rotulados de 0 a n-1
|
False
|
Como utilizar DataFrame.dropna()
O método Pandas é necessário para limpar os dados antes da análise, pois elimina linhas ou colunas com valores em falta. Isso ajuda a evitar enviesamentos ao realizar avaliações estatísticas. Além disso, facilita a criação de gráficos e relatórios, uma vez que a presença de valores em falta pode causar representações incorretas em alguns casos.
Eliminar linhas com valores em falta
No código a seguir, analisamos um DataFrame que contém valores NaN:
import pandas as pd
import numpy as np
# Creación de un DataFrame con datos de ejemplo
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)pythonO DataFrame tem a seguinte aparência:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12Na etapa seguinte, utiliza-se o método dropna() do Pandas:
## Eliminación de todas las filas que contienen al menos un valor NaN
df_cleaned = df.dropna()
print(df_cleaned)pythonAo executar o código, obtém-se o seguinte resultado:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Apenas a linha zero e a linha três do DataFrame permanecem, uma vez que as restantes linhas continham valores NaN.
Eliminação de colunas com valores em falta
A eliminação de colunas com valores em falta funciona de forma análoga ao primeiro exemplo. Neste caso, basta definir o parâmetro axis da função como 1:
## Eliminación de todas las columnas que contienen al menos un valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)pythonNo resultado seguinte, podemos observar que apenas resta a coluna «C», porque é a única que não contém nenhum valor NaN:
C
0 9
1 10
2 11
3 12Utilização do parâmetro thresh
Se desejar eliminar apenas as linhas com menos de dois valores não NaN, pode utilizar o parâmetro thresh:
## Eliminación de todas las filas con menos de dos valores no NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)pythonDepois de executarmos este código, a primeira linha também permanece, pois contém dois valores não NaN:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12Utilização do parâmetro subset
O parâmetro subset é utilizado para especificar em quais colunas serão procurados valores em falta. Apenas serão eliminadas as linhas que tiverem valores em falta nas colunas indicadas.
## Eliminación de todas las filas que contienen un valor NaN en la columna “A”:
df_subset = df.dropna(subset=['A'])
print(df_subset)pythonNeste caso, apenas a segunda linha foi eliminada. O valor NaN na primeira linha foi ignorado, seguindo o parâmetro definido, porque a coluna «B» não estava incluída:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12