Filtro pandas por várias condições

Filtro pandas por várias condições

A manipulação de dados de dados mais popular em pandas é filtrar. Nesta postagem, veremos como usar várias condições para filtrar um quadro de dados de pandas. Nos pandas, existem vários métodos para extrair dados do quadro de dados usando várias condições. Nos exemplos a seguir, demonstraremos como usar funções diferentes para filtrar o quadro de dados usando várias condições.

Método 1: Usando Eval ()

avaliar () é usado para avaliar uma expressão. Portanto, atuará como um filtro no quadro de dados e retornará as linhas que correspondem à condição.

Sintaxe

Pandas.Dataframe_object [dataframe_object.Eval (“Condições”)]

Exemplo 1

Vamos criar um quadro de dados com 6 colunas e 4 linhas e retornar as linhas com base na coluna de taxas em que o ID é maior que 20, e o nome termina com "n".

Importar pandas
importar numpy
Observações = pandas.Dataframe ([[23, 'sravan', 'passa', 1000,34,56],
[21, 'Shiva', 'Fail', 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, 'Suryam', 'Fail', 450,76,56]
], colunas = ['id', 'nome', 'status', 'taxa', 'pontos1', 'pontos2']))
Impressão (comentários)
imprimir()
# Retorne as linhas com base na coluna de taxa em que o ID é maior que 20 e o nome termina com "n".
Impressão (Comentários [Comentários.Eval (“ID> 20 e nome.str.endswith ('n').valores ”))

Saída

Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
2 20 Sahaja Pass 100 78 90
3 22 Suryam Fail 450 76 56
Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56

Existe apenas uma linha de tal forma que o nome termina com 'n', e o id é maior que 20. Aqui, especificamos duas condições usando o operador “e”.

Exemplo 2

Retorne as linhas com base na coluna 'Fee', onde o ID é maior que 20 e 'pontos1' é menor que 35, e o nome começa com 's'.

Importar pandas
importar numpy
Observações = pandas.Dataframe ([[23, 'sravan', 'passa', 1000,34,56],
[21, 'Shiva', 'Fail', 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, 'Suryam', 'Fail', 450,76,56]
], colunas = ['id', 'nome', 'status', 'taxa', 'pontos1', 'pontos2']))
# Retorne as linhas com base na coluna de taxas em que o ID é maior que 20 e começa com "S" e Points1 menor que 35.
Impressão (Comentários [Comentários.Eval ("ID> 20 e nome.str.StartSwith ('s').Valores & Points1 < 35")])

Saída

Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45

Duas linhas correspondem à condição.

Método 2: Usando LOC []

Sintaxe

Dataframe_object.loc []

Parâmetro

Rótulo do índice: Lista de strings ou uma única sequência dos nomes de índices da linha.

Exemplo 1

Crie um DataFrame chamado 'Comentários' com 6 colunas. Vamos devolver as linhas com base na coluna de taxas em que a taxa é maior que 300 e pontos2 menor que 76.

Importar pandas
Observações = pandas.Dataframe ([[23, 'sravan', 'passa', 1000,34,56],
[21, 'Shiva', 'Fail', 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, 'Suryam', 'Fail', 450,76,56]
], colunas = ['id', 'nome', 'status', 'taxa', 'pontos1', 'pontos2']))
# Exiba o DataFrame - Comentários
Impressão (comentários)
imprimir()
# Retorne as linhas com base na coluna de taxa em que a taxa é superior a 300 e pontos2 menor que 76
Impressão (Comentários.loc [(observações ['taxa']> 300) e (comentários ['pontos2'] < 76)])

Saída

Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
2 20 Sahaja Pass 100 78 90
3 22 Suryam Fail 450 76 56
Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Existem 3 linhas onde a taxa é superior a 300 e pontos2 menor que 76. Aqui, especificamos duas condições com o operador '&'.

Exemplo 2:

Crie um DataFrame chamado 'Comentários' com 6 colunas. Vamos devolver as linhas com base na coluna de taxas em que a taxa é maior que 300 e pontos2 menor que 76.

Importar pandas
Observações = pandas.Dataframe ([[23, 'sravan', 'passa', 1000,34,56],
[21, 'Shiva', 'Fail', 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, 'Suryam', 'Fail', 450,76,56]
], colunas = ['id', 'nome', 'status', 'taxa', 'pontos1', 'pontos2']))
# Retorne as linhas com base na coluna de taxa em que a taxa é superior a 300 e pontos2 menor que 76, e o status é 'falha'.
Impressão (Comentários.loc [(observações ['taxa']> 300) e (comentários ['pontos2'] < 76) & (remarks['status'] == 'fail')])

Saída

Id Nome Status Taxa Points1 Pontos2
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Existem 2 linhas onde a taxa é maior que 300 e pontos2 maiores que 76, e o status é 'falha'. Aqui, especificamos três condições com o operador '&'.

Método 3: Usando a Query ()

Query () tomará a condição como uma expressão de modo que as linhas sejam filtradas no quadro de dados com base na expressão fornecida. Certifique -se de que você precisa escrever uma expressão dentro "".

Sintaxe

Pandas.Dataframe_object.Consulta ("Expressão")

Exemplo

Vamos devolver as linhas com base na coluna de taxas em que a taxa é maior que 300 e pontos2 menor que 76.

Importar pandas
Observações = pandas.Dataframe ([[23, 'sravan', 'passa', 1000,34,56],
[21, 'Shiva', 'Fail', 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, 'Suryam', 'Fail', 450,76,56]
], colunas = ['id', 'nome', 'status', 'taxa', 'pontos1', 'pontos2']))
# Retorne as linhas com base na coluna de taxa em que a taxa é superior a 300 e pontos2 menor que 76
Impressão (Comentários.Consulta ("Taxa> 300 e Points2 < 76"))

Saída

Id Nome Status Taxa Points1 Pontos2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Existem 3 linhas onde a taxa é superior a 300 e pontos2 menor que 76. Aqui, especificamos duas condições usando o operador 'e'.

Conclusão

A filtragem é a operação de quadro de dados mais usada em pandas. Neste guia, deliberamos como você filtra o quadro de dados usando várias condições. Depois de cobrir este artigo, você poderá filtrar os dados usando várias condições. Implementamos alguns exemplos neste artigo para ensinar como extrair dados do quadro de dados com a ajuda de várias condições usando as diferentes funções em pandas e numpy como loc [], consulher () e avaliar ().