Pandas: como usar dropna() com thresh


Você pode usar a função dropna() para remover linhas de um DataFrame do pandas que contém valores ausentes.

Você também pode usar o argumento thresh para especificar o número mínimo de valores não NaN que uma linha ou coluna deve ter para serem retidos no DataFrame.

Aqui estão as maneiras mais comuns de usar o argumento de limite na prática:

Método 1: manter apenas linhas com um número mínimo de valores não NaN

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

Método 2: manter apenas linhas com uma porcentagem mínima de valores não NaN

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

Método 3: manter apenas colunas com um número mínimo de valores não-NaN

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

Método 4: manter apenas colunas com uma porcentagem mínima de valores não NaN

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do pandas:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B NaN NaN NaN
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Exemplo 1: mantenha apenas linhas com um número mínimo de valores não NaN

Podemos usar a seguinte sintaxe para manter apenas as linhas no DataFrame que possuem pelo menos 2 valores diferentes de NaN:

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

	team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Observe que a linha na posição 1 do índice foi removida porque tinha apenas um valor diferente de NaN em toda a linha.

Exemplo 2: Mantenha apenas linhas com uma porcentagem mínima de valores não NaN

Podemos usar a seguinte sintaxe para manter apenas as linhas no DataFrame que possuem pelo menos 70% de valores não-NaN:

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

        team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0

Observe que as linhas nas posições de índice 1 e 7 foram removidas porque essas linhas não continham pelo menos 70% dos valores como valores não-NaN.

Exemplo 3: Mantenha apenas colunas com um número mínimo de valores não-NaN

Podemos usar a seguinte sintaxe para manter apenas as colunas no DataFrame que possuem pelo menos 6 valores não-NaN:

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Observe que a coluna “assistências” foi removida porque essa coluna não continha pelo menos 6 valores não-NaN na coluna.

Exemplo 4: Mantenha apenas colunas com uma porcentagem mínima de valores não-NaN

Podemos usar a seguinte sintaxe para manter apenas as colunas no DataFrame que possuem pelo menos 70% de valores não-NaN:

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Observe que a coluna “suporte” foi removida porque esta coluna não continha pelo menos 70% de valores não-NaN.

Nota : Você pode encontrar a documentação completa da função dropna() do pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Pandas: Como redefinir o índice após usar dropna()
Pandas: como usar dropna() com colunas específicas
Pandas: como excluir linhas com base em múltiplas condições

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *