Pandas: filtrar por coluna não igual a valores específicos


Você pode usar os seguintes métodos para filtrar um DataFrame do pandas onde uma coluna não é igual a valores específicos:

Método 1: Filtrar onde a coluna não é igual a um valor específico

 #filter rows where team column is not equal to 'Nets'
df_filtered = df[df[' team '] != ' Nets ']

Método 2: Filtrar quando a coluna não for igual a vários valores específicos

 #filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])]

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   ' points ': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print (df)

    team points
0 Mavs 22
1 Mavs 28
2 Nets 35
3 Nets 34
4 Heat 29
5 Heat 28
6 Kings 23

Exemplo 1: Filtro onde a coluna não é igual a um valor específico

Podemos usar a seguinte sintaxe para filtrar o DataFrame para conter apenas linhas onde a coluna da equipe não é igual a “Redes”:

 #filter rows where team column is not equal to 'Nets'
df_filtered = df[df[' team '] != ' Nets ']

#view filtered DataFrame
print (df_filtered)

    team points
0 Mavs 22
1 Mavs 28
4 Heat 29
5 Heat 28
6 Kings 23

Observe que todas as linhas onde o nome da equipe era “Nets” foram filtradas do DataFrame.

Nota : O símbolo ! = representa “diferente” em pandas.

Exemplo 2: Filtro onde a coluna não é igual a vários valores específicos

Podemos usar a seguinte sintaxe para filtrar o DataFrame para conter apenas linhas onde a coluna da equipe não é igual a “Nets”, “Mavs” ou “Kings”:

 #filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[ ~ df[' team ']. isin ([' Nets ', ' Mavs ', ' Kings '])]

#view filtered DataFrame
print (df_filtered)

   team points
4 Heat 29
5 Heat 28

Observe que todas as linhas onde o nome do time era “Nets”, “Mavs” ou “Kings” foram filtradas do DataFrame.

Nota : O símbolo ~ representa “não” em pandas.

Documentação : Você pode encontrar a documentação completa para a função isin() do pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:

Pandas: como adicionar filtro à tabela dinâmica
Pandas: Como filtrar “Não contém”
Pandas: como filtrar linhas contendo uma string específica

Add a Comment

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