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:
- Come e dove acquistare Chipstars (CHIPS) – Una semplice guida passo passo
- Come recuperare la password di posta AOL dimenticata
- Il foglio informativo definitivo di AWS Instance Scheduler per gli sviluppatori
- Le migliori 22 estensioni del codice di Visual Studio per lo sviluppo Web
- Scopri i loop WHILE in Java in meno di 4 minuti