Filtra le righe DataFrame di Pandas in base a un elenco di stringhe in Python - Guida dettagliata

Prova Il Nostro Strumento Per Eliminare I Problemi

Quando si analizzano i dati in a Panda DataFrame in Python, spesso vorrai filtrare DataFrame per conservare solo le righe che contengono valori specifici. Un'attività di filtro comune consiste nel filtrare le righe in base a un elenco di stringhe specificato, conservando solo le righe che contengono una o più stringhe dell'elenco.

In questa guida completa imparerai diversi metodi per filtrare un Pandas DataFrame in base a un elenco di stringhe, tra cui:

  • Corrispondenze esatte della stringa
  • Corrispondenze di stringa parziali
  • Corrispondenze senza distinzione tra maiuscole e minuscole
  • Corrispondenza di più colonne

Troverai esempi di codice Python per ciascun metodo, nonché dettagli su come funzionano le operazioni di filtro dietro le quinte. Iniziamo!

Impostare

Per prima cosa importeremo i Panda e creeremo un semplice DataFrame per dimostrare le tecniche di filtraggio:

|_+_|

Questo stampa:

|_+_|

Vediamo ora i vari metodi per filtrare le righe in base ad un elenco di stringhe.

Corrispondenza esatta della stringa

Per filtrare DataFrame solo sulle righe che contengono corrispondenze esatte di stringhe da un elenco, è possibile utilizzare |_+_| metodo.

Ad esempio, per filtrare le righe con i colori 'Bianco' o 'Grigio':

|_+_|

Questo stampa le righe con solo i colori 'Bianco' e 'Grigio':

|_+_|

Il |_+_| Il metodo controlla ogni valore nella colonna 'Colore' rispetto all'elenco, restituendo True se il valore è nell'elenco e False in caso contrario. La serie booleana restituita viene quindi utilizzata per suddividere il DataFrame e conservare solo le righe in cui |_+_| ha restituito Vero.

Corrispondenza esatta utilizzando un set

Un approccio alternativo consiste nell'utilizzare un insieme che abbia un tempo di ricerca O(1):

|_+_|

Questo può essere più veloce per elenchi molto grandi.

Corrispondenza parziale della stringa

Per corrispondenze di stringhe parziali o 'fuzzy', è possibile utilizzare |_+_| insieme al metodo |_+_| (OR) operatore.

Ad esempio, per abbinare le righe che contengono 'Bianco' O 'Nero':

|_+_|

Produzione:

|_+_|

Qui uniamo l'elenco delle stringhe con '|' per creare un'espressione regolare passata a |_+_| per far corrispondere le righe che contengono 'Bianco' o 'Nero', facendo distinzione tra maiuscole e minuscole.

Corrispondenza parziale senza distinzione tra maiuscole e minuscole

Per rendere le corrispondenze parziali senza distinzione tra maiuscole e minuscole, utilizzare |_+_| per ignorare il caso:

|_+_|

Ciò restituisce le stesse righe dell'esempio precedente, mostrando che il caso viene ora ignorato.

Filtra per elenco in più colonne

Puoi anche filtrare su più colonne con un elenco di stringhe. Ad esempio, per abbinare 'bianco' o 't-shirt'. O le colonne 'Colore' o 'Prodotto':

|_+_|

Ritorna:

|_+_|

Qui utilizzando |_+_| (OR) tra |_+_| chiamate, corrisponderà alle righe che soddisfano ENTRAMBE le condizioni.

Filtra per valori di colonna in un elenco

In alcuni casi potresti voler far corrispondere i valori esatti di una delle colonne DataFrame, se appaiono in un elenco.

Il metodo migliore per questo tipo di filtraggio è utilizzare |_+_| Ancora:

|_+_|

Questo stampa:

|_+_|

Conclusione

Abbiamo esplorato diversi metodi pratici per filtrare le righe Pandas DataFrame in base a un elenco di stringhe di filtro, tra cui:

  • Utilizzando |_+_| per corrispondenze esatte
  • Applicazione |_+_| per partite parziali
  • UNIRE l'espressione regolare con '|' per la logica OR
  • Filtraggio su più colonne

Questi strumenti di filtro forniscono modi potenti e flessibili per suddividere e filtrare i DataFrames Panda per flussi di lavoro di analisi rapidi ma complessi.

Ora hai il know-how per utilizzare elenchi di stringhe per filtrare rapidamente sottoinsiemi di dati nei tuoi progetti di data science Python!

Guarda Anche: