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á remover 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()
aceita os seguintes parâmetros:
axis
:{0 (ou 'índice'), 1 (ou 'colunas')}, padrão 0
- Se
0
, remove as linhas com valores ausentes. - Se
1
, remove as colunas com valores ausentes. how
:{'any', 'all'}, padrão 'any'
- Se
'any'
, remove a linha ou coluna se algum dos valores forNA
. - Se
'all'
, remove a linha ou coluna se todos os valores foremNA
. thresh
: (opcional) um valorint
para especificar o limiar para a operação de eliminação.subset
: (opcional) rótulo de 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 Amostra
Construa um DataFrame de amostra 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
:
Isto 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.
Eliminando Todas as Linhas com Valores Ausentes
Use dropna()
para remover linhas com quaisquer valores None
, NaN
ou NaT
:
Isto 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
Use dropna()
com axis=1
para remover colunas com quaisquer valores None
, NaN
, ou NaT
:
As colunas com quaisquer valores 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
Use 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, use 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.
Eliminar Linhas ou Colunas se um Limiar for Cruzado com thresh
Use o segundo DataFrame com thresh
para eliminar 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 eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Terceira, quarta e quinta linhas foram eliminadas.
Eliminar Linhas ou Colunas para subconjuntos
Específicos
Use o segundo DataFrame com subset
para eliminar as linhas com valores NA
na coluna Population
:
As linhas que têm valores NA
em Population
serão eliminadas:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Terceira, quarta e quinta linhas foram eliminadas.
Você também pode especificar os valores de index
no subset
ao eliminar colunas do DataFrame:
As colunas que contêm valores NA
no subconjunto de linhas 1
e 2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
Terceira, quarta e quinta colunas foram eliminadas.
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
.
Isto 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 aprendendo com mais tutoriais de Python e pandas – Tutorial do módulo pandas do Python, Eliminar linhas duplicadas no pandas.
Referências
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe