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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *