Panda: come filtrare le righe in base alla lunghezza della stringa
È possibile utilizzare i seguenti metodi per filtrare le righe contenenti una stringa di una lunghezza specifica in un DataFrame panda:
Metodo 1: filtrare le righe in base alla lunghezza della stringa in una colonna
#filter rows where col1 has a string length of 5 df. loc [df[' col1 ']. str . len () == 5 ]
Metodo 2: filtra le righe in base alla lunghezza della stringa di più colonne
#filter rows where col1 has string length of 5 and col2 has string length of 7 df. loc [(df[' col1 ']. str . len () == 5 ) & (df[' col2 ']. str . len () == 7 )]
I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con i seguenti DataFrame panda:
import pandas as pd #createDataFrame df = pd. DataFrame ({' conf ': ['East', 'East', 'North', 'West', 'North', 'South'], ' pos ': ['Guard', 'Guard', 'Forward', 'Center', 'Center', 'Forward'], ' points ': [5, 7, 7, 9, 12, 9]}) #view DataFrame print (df) conf pos points 0 East Guard 5 1 East Guard 7 2 North Forward 7 3 West Center 9 4 North Center 12 5 South Forward 9
Esempio 1: filtra le righe in base alla lunghezza della stringa in una colonna
Il codice seguente mostra come filtrare le righe dal DataFrame che hanno una lunghezza di stringa pari a 5 nella colonna conf :
#filter rows where conf has a string length of 5 df. loc [df[' conf ']. str . len () == 5 ] conf pos points 2 North Forward 7 4 North Center 12 5 South Forward 9
Vengono restituite solo le righe in cui la colonna conf ha una lunghezza di stringa pari a 5 .
Possiamo vedere che due stringhe diverse soddisfano questo criterio nella colonna conf :
- “Nord”
- “Sud”
Entrambe le stringhe hanno una lunghezza di 5 .
Esempio 2: filtra le righe in base alla lunghezza della stringa di più colonne
Il codice seguente mostra come filtrare le righe dal DataFrame che hanno una lunghezza di stringa pari a 5 nella colonna conf e una lunghezza di stringa pari a 7 nella colonna pos :
#filter rows where conf has string length of 5 and pos has string length of 7 df. loc [(df[' conf ']. str . len () == 5 ) & (df[' pos ']. str . len () == 7 )] conf pos points 2 North Forward 7 5 South Forward 9
Vengono restituite solo le righe in cui la colonna conf ha una lunghezza di stringa pari a 5 e la colonna pos ha una lunghezza di forza pari a 7 .
Nota : puoi trovare la documentazione completa della funzione str.len() in panda qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:
Come eliminare le righe in Pandas DataFrame in base alle condizioni
Come filtrare un Pandas DataFrame su più condizioni
Come utilizzare il filtro “NOT IN” in Pandas DataFrame