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