I panda filtrano per più condizioni

I panda filtrano per più condizioni

La manipolazione più popolare del gesto di dati in Panda è il filtro. In questo post, esamineremo come utilizzare diverse condizioni per filtrare un Frame di dati Pandas. In Panda, ci sono più metodi per estrarre dati dal telaio di dati utilizzando più condizioni. Nei seguenti esempi, dimostreremo come utilizzare diverse funzioni per filtrare il telaio di dati utilizzando più condizioni.

Metodo 1: usando Eval ()

Valuta () viene utilizzato per valutare un'espressione. Quindi fungerà da filtro nel frame dati e restituirà le righe che corrispondono alla condizione.

Sintassi

panda.DataFrame_Object [dataframe_object.Valuta ("Condizioni")]

Esempio 1

Creiamo un frame dati con 6 colonne e 4 righe e restituiamo le righe in base alla colonna delle commissioni in cui l'ID è superiore a 20 e il nome termina con "N".

Panda di importazione
importa numpy
Osservazioni = panda.DataFrame ([[23, "Sravan", "Pass", 1000,34,56],
[21, "Siva", "Fail", 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, "Suryam", "Fail", 450,76,56]
], colonne = ['id', 'name', 'status', 'tassa', 'point1', 'point2'])
Stampa (osservazioni)
stampa()
# Restituisci le righe in base alla colonna delle commissioni in cui l'ID è superiore a 20 e il nome termina con "N".
Stampa (osservazioni [osservazioni.Eval (“Id> 20 e nome.str.endswith ('n').valori")])

Produzione

ID NAME STATO STATO Punti1 Punti2
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 NAME STATO STATO Punti1 Punti2
0 23 Sravan Pass 1000 34 56

C'è solo una riga tale che il nome termina con 'n' e l'ID è maggiore di 20. Qui, abbiamo specificato due condizioni utilizzando l'operatore "e".

Esempio 2

Restituisci le righe in base alla colonna "Commissione" in cui l'ID è maggiore di 20 e "Points1" è inferiore a 35 e il nome inizia con "S".

Panda di importazione
importa numpy
Osservazioni = panda.DataFrame ([[23, "Sravan", "Pass", 1000,34,56],
[21, "Siva", "Fail", 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, "Suryam", "Fail", 450,76,56]
], colonne = ['id', 'name', 'status', 'tassa', 'point1', 'point2'])
# Restituisci le righe in base alla colonna delle commissioni in cui l'ID è superiore a 20 e inizia con "S" e punti 1 inferiore a 35.
Stampa (osservazioni [osservazioni.Eval ("Id> 20 e nome.str.startwith ('s').valori e punti1 < 35")])

Produzione

ID NAME STATO STATO Punti1 Punti2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45

Due righe corrispondono alla condizione.

Metodo 2: usando loc []

Sintassi

DataFrame_Object.loc []

Parametro

Etichetta indice: Elenco di stringhe o una singola stringa di nomi di indici della riga.

Esempio 1

Crea un telaio di dati denominato "Osservazioni" con 6 colonne. Restituiamo le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2.

Panda di importazione
Osservazioni = panda.DataFrame ([[23, "Sravan", "Pass", 1000,34,56],
[21, "Siva", "Fail", 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, "Suryam", "Fail", 450,76,56]
], colonne = ['id', 'name', 'status', 'tassa', 'point1', 'point2'])
# Visualizza il frame dati - osserva
Stampa (osservazioni)
stampa()
# Restituisce le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2 inferiore a 76
Stampa (osservazioni.loc [(osserva ['Fee']> 300) & (osserva ['Points2'] < 76)])

Produzione

ID NAME STATO STATO Punti1 Punti2
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 NAME STATO STATO Punti1 Punti2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Ci sono 3 righe in cui la tassa è superiore a 300 e punti2. Qui, abbiamo specificato due condizioni con l'operatore "&".

Esempio 2:

Crea un telaio di dati denominato "Osservazioni" con 6 colonne. Restituiamo le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2.

Panda di importazione
Osservazioni = panda.DataFrame ([[23, "Sravan", "Pass", 1000,34,56],
[21, "Siva", "Fail", 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, "Suryam", "Fail", 450,76,56]
], colonne = ['id', 'name', 'status', 'tassa', 'point1', 'point2'])
# Restituisci le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2 inferiore a 76 e lo stato è "fallito".
Stampa (osservazioni.loc [(osserva ['Fee']> 300) & (osserva ['Points2'] < 76) & (remarks['status'] == 'fail')])

Produzione

ID NAME STATO STATO Punti1 Punti2
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Ci sono 2 righe in cui la commissione è maggiore di 300 e punti2 maggiore di 76 e lo stato è "fallito". Qui, abbiamo specificato tre condizioni con l'operatore "&".

Metodo 3: usando query ()

Query () prenderà la condizione come espressione in modo tale che le righe siano filtrate nel frame dati in base all'espressione fornita. Assicurati di dover scrivere un'espressione all'interno "".

Sintassi

panda.DataFrame_Object.query ("espressione")

Esempio

Restituiamo le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2.

Panda di importazione
Osservazioni = panda.DataFrame ([[23, "Sravan", "Pass", 1000,34,56],
[21, "Siva", "Fail", 400,32,45],
[20, 'Sahaja', 'Pass', 100,78,90],
[22, "Suryam", "Fail", 450,76,56]
], colonne = ['id', 'name', 'status', 'tassa', 'point1', 'point2'])
# Restituisce le righe in base alla colonna delle commissioni in cui la commissione è superiore a 300 e punti2 inferiore a 76
Stampa (osservazioni.Query ("Commissione> 300 e punti2 < 76"))

Produzione

ID NAME STATO STATO Punti1 Punti2
0 23 Sravan Pass 1000 34 56
1 21 Siva Fail 400 32 45
3 22 Suryam Fail 450 76 56

Ci sono 3 righe in cui la tassa è superiore a 300 e punti2. Qui, abbiamo specificato due condizioni utilizzando l'operatore "e".

Conclusione

Il filtraggio è l'operazione di dati più spesso utilizzata in panda. In questa guida, abbiamo deliberato il modo in cui si filtra il telaio di dati utilizzando più condizioni. Dopo aver coperto questo articolo, potresti essere in grado di filtrare i dati utilizzando più condizioni da solo. Abbiamo implementato alcuni esempi in questo articolo per insegnarti come estrarre i dati dal frame dati con l'aiuto di più condizioni utilizzando le diverse funzioni in panda e numpy come loc [], query () e valutatore ().