Como selecionar linhas sem valores nan no pandas
Você pode usar os seguintes métodos para selecionar linhas sem valores NaN em pandas:
Método 1: selecione linhas sem valores NaN em todas as colunas
df[~df. isnull (). any (axis= 1 )]
Método 2: selecione linhas sem valores NaN em uma coluna específica
df[~df[' this_column ']. isna ()]
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'], ' points ': [np.nan, 12, 15, 25, np.nan, 22, 30], ' assists ': [4, np.nan, 5, 9, 12, 14, 10]}) #view DataFrame print (df) team points assists 0 A NaN 4.0 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 4 E NaN 12.0 5F 22.0 14.0 6G 30.0 10.0
Exemplo 1: Selecione linhas sem valores NaN em todas as colunas
Podemos usar a seguinte sintaxe para selecionar linhas sem valores NaN em cada coluna do DataFrame:
#create new DataFrame that only contains rows without NaNs no_nans = df[~df. isnull (). any (axis= 1 )] #view results print (no_nans) team points assists 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
Observe que cada linha do DataFrame resultante não contém nenhum valor NaN em nenhuma coluna.
Exemplo 2: Selecione linhas sem valores NaN em uma coluna específica
Podemos usar a seguinte sintaxe para selecionar linhas sem valores NaN na coluna de pontos do DataFrame:
#create new DataFrame that only contains rows without NaNs in points column no_points_nans = df[~df[' points ']. isna ()] #view results print (no_points_nans) team points assists 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
Observe que cada linha do DataFrame resultante não contém valores NaN na coluna de pontos .
Há uma linha com um valor NaN na coluna Assistências , mas a linha é mantida no DataFrame, pois o valor na coluna Pontos dessa linha não é NaN.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Pandas: Como deletar linhas com valores NaN
Pandas: como substituir valores NaN por uma string
Pandas: como preencher valores NaN com média