Pandas: extrai o valor da coluna com base em outra coluna
Você pode usar a função query() em pandas para extrair o valor em uma coluna com base no valor em outra coluna.
Esta função usa a seguinte sintaxe básica:
df. query (" team=='A' ")[" points "]
Este exemplo específico extrairá cada valor da coluna de pontos onde a coluna da equipe é igual a A.
Os exemplos a seguir mostram como usar essa sintaxe 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 ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [11, 28, 10, 26, 6, 25, 29, 12]}) #view DataFrame print (df) team position points 0 AG 11 1 AG 28 2 AF10 3AF 26 4 BG 6 5 BG 25 6 BF 29 7 BF 12
Exemplo 1: Extraia valores de coluna com base em uma condição atendida
O código a seguir mostra como extrair cada valor da coluna de pontos onde o valor da coluna da equipe é igual a “A”:
#extract each value in points column where team is equal to 'A' df. query (" team=='A' ")[" points "] 0 11 1 28 2 10 3 26 Name: points, dtype: int64
Esta função retorna os quatro valores da coluna de pontos onde o valor correspondente na coluna da equipe é igual a “A”.
Exemplo 2: Extraia os valores da coluna com base em uma das muitas condições atendidas
O código a seguir mostra como extrair cada valor da coluna de pontos onde o valor da coluna da equipe é igual a “A” ou o valor da coluna de posição é igual a “G”:
#extract each value in points column where team is 'A' or position is 'G' df. query (" team=='A' | position=='G' ")[" points "] 0 11 1 28 2 10 3 26 4 6 5 25 Name: points, dtype: int64
Esta função retorna os seis valores na coluna de pontos onde o valor correspondente na coluna equipe é igual a “A” ou o valor na coluna de posição é igual a “G”.
Exemplo 3: Extraia valores de colunas com base em múltiplas condições atendidas
O código a seguir mostra como extrair cada valor da coluna de pontos onde o valor da coluna equipe é igual a “A” e o valor da coluna posição é igual a “G”:
#extract each value in points column where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' ")[" points "] 0 11 1 28 Name: points, dtype: int64
Esta função retorna os dois valores na coluna de pontos onde o valor correspondente na coluna equipe é igual a “A” e o valor na coluna de posição é igual a “G”.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Pandas: como selecionar colunas com base na condição
Pandas: exclua linhas com base em múltiplas condições
Pandas: atualize os valores das colunas com base em outro DataFrame