Pandas: como usar isin para múltiplas colunas


Você pode usar os seguintes métodos com a função pandas isin() para filtrar com base em múltiplas colunas em um DataFrame do pandas:

Método 1: filtrar quando várias colunas equivalem a valores específicos

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

Este exemplo específico filtra o DataFrame para linhas onde a coluna da equipe é igual a “A” e a coluna de posição é igual a “Guarda”.

Método 2: Filtrar onde pelo menos uma coluna é igual a um valor específico

 df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

Este exemplo específico filtra o DataFrame para linhas onde a coluna da equipe é igual a “A” ou a coluna de posição é igual a “Guarda”.

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 ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [11, 18, 10, 22, 26, 35, 19, 12]})
                   
#view DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35
6 B Forward 19
7 B Forward 12

Exemplo 1: Filtro onde múltiplas colunas equivalem a valores específicos

Podemos usar a seguinte sintaxe para filtrar o DataFrame para conter apenas linhas onde a coluna da equipe é igual a “A” e a coluna de posição é igual a “Guarda”.

 #filter rows where team column is 'A' and position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18

Observe que apenas as linhas em que a coluna da equipe é igual a “A” e a coluna de posição é igual a “Guarda” permanecem no DataFrame filtrado.

Exemplo 2: Filtro onde pelo menos uma coluna é igual a um valor específico

Podemos usar a seguinte sintaxe para filtrar o DataFrame para conter apenas linhas onde a coluna da equipe é igual a “A” ou a coluna de posição é igual a “Guarda”.

 #filter rows where team column is 'A' or position column is 'Guard'
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]

#view filtered DataFrame
print (df)

  team position points
0 A Guard 11
1 A Guard 18
2 A Forward 10
3 A Forward 22
4 B Guard 26
5 B Guard 35

Observe que apenas as linhas em que a coluna da equipe é igual a “A” ou a coluna de posição é igual a “Guarda” permanecem no DataFrame filtrado.

Nota : 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 em pandas:

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 *