Introdução
Neste tutorial, você aprenderá como usar a função dropna()
do DataFrame do pandas.
Os valores NA
significam “Não Disponível”. Isso pode se aplicar a Null
, None
, pandas.NaT
, ou numpy.nan
. Usar dropna()
irá eliminar as linhas e colunas com esses valores. Isso pode ser benéfico para fornecer apenas dados válidos.
Por padrão, esta função retorna um novo DataFrame e o DataFrame de origem permanece inalterado.
Este tutorial foi verificado com Python 3.10.9, pandas 1.5.2 e NumPy 1.24.1.
Sintaxe
A função dropna()
recebe os seguintes parâmetros:
axis
:{0 (ou 'index'), 1 (ou 'columns')}, padrão 0
- Se
0
, elimina as linhas com valores ausentes. - Se
1
, elimina as colunas com valores ausentes. how
:{'any', 'all'}, padrão 'any'
- Se
'any'
, elimina a linha ou coluna se qualquer um dos valores forNA
. - Se
'all'
, elimina a linha ou coluna se todos os valores foremNA
. thresh
: (opcional) um valorint
para especificar o limite para a operação de exclusão.subset
: (opcional) rótulo da coluna ou sequência de rótulos para especificar linhas ou colunas.inplace
: (opcional) um valorbool
.- Se
True
, o DataFrame de origem é alterado eNone
é retornado.
Construindo DataFrames de Exemplo
Construa um DataFrame de exemplo que contenha valores válidos e inválidos:
Este código imprimirá o DataFrame:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
Em seguida, adicione um segundo DataFrame com linhas e colunas adicionais com valores NA
:
Isso resultará em um novo DataFrame:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
Você usará os DataFrames anteriores nos exemplos a seguir.
Excluindo Todas as Linhas com Valores Ausentes
Use dropna()
para remover as linhas com qualquer valor None
, NaN
ou NaT
:
Isso resultará em:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
Eliminar Todas as Colunas com Valores Ausentes
Utilize dropna()
com axis=1
para remover colunas com qualquer valor None
, NaN
ou NaT
:
As colunas com qualquer valor None
, NaN
ou NaT
serão eliminadas:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
Eliminar Linhas ou Colunas se todos
os Valores Forem Nulos
com how
Utilize o segundo DataFrame e how
:
As linhas com todos
os valores iguais a NA
serão eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
A quinta linha foi eliminada.
Em seguida, utilize how
e especifique o axis
:
As colunas com todos
os valores iguais a NA
serão eliminadas:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
A quinta coluna foi eliminada.
Descartando Linhas ou Colunas se um Limiar for Ultrapassado com thresh
Use o segundo DataFrame com thresh
para descartar as linhas que não atendem ao limiar de pelo menos 3
valores não NA
:
As linhas que não têm pelo menos 3
valores não NA
serão descartadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
A terceira, quarta e quinta linhas foram descartadas.
Descartando Linhas ou Colunas para subconjuntos
Específicos
Use o segundo DataFrame com subset
para descartar as linhas com valores NA
na coluna População
:
As linhas que têm valores NA
em População
serão descartadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
A terceira, quarta e quinta linhas foram descartadas.
Você também pode especificar os valores do índice
no subset
ao descartar colunas do DataFrame:
As colunas que contêm valores NA
no subconjunto das linhas 1
e 2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
A terceira, quarta e quinta colunas foram descartadas.
Alterando o DataFrame de origem após a exclusão de linhas ou colunas com inplace
Por padrão, dropna()
não modifica o DataFrame de origem. No entanto, em alguns casos, você pode desejar economizar memória ao trabalhar com um grande DataFrame de origem usando inplace
.
Este código não utiliza uma variável dfresult
.
Isso resultará em:
OutputName ID Population Regions
0 Shark 1 100 1
O DataFrame original foi modificado.
Conclusão
Neste artigo, você utilizou a função dropna()
para remover linhas e colunas com valores NA
.
Continue sua aprendizagem com mais tutoriais de Python e pandas – Tutorial do Módulo Python pandas, Removendo Linhas Duplicadas no pandas.
Referências
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe