Pandas : Comment filtrer les lignes en fonction de la longueur de la chaîne
Vous pouvez utiliser les méthodes suivantes pour filtrer les lignes contenant une chaîne d’une longueur spécifique dans un DataFrame pandas :
Méthode 1 : filtrer les lignes en fonction de la longueur de la chaîne dans une colonne
#filter rows where col1 has a string length of 5 df.loc[df['col1'].str.len() == 5]
Méthode 2 : filtrer les lignes en fonction de la longueur de chaîne de plusieurs colonnes
#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)]
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame 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
Exemple 1 : filtrer les lignes en fonction de la longueur de la chaîne dans une colonne
Le code suivant montre comment filtrer les lignes du DataFrame qui ont une longueur de chaîne de 5 dans la colonne 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
Seules les lignes où la colonne conf a une longueur de chaîne de 5 sont renvoyées.
Nous pouvons voir que deux chaînes différentes répondent à ce critère dans la colonne conf :
- « Nord »
- « Sud »
Les deux chaînes ont une longueur de 5 .
Exemple 2 : filtrer les lignes en fonction de la longueur de chaîne de plusieurs colonnes
Le code suivant montre comment filtrer les lignes du DataFrame qui ont une longueur de chaîne de 5 dans la colonne conf et une longueur de chaîne de 7 dans la colonne 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
Seules les lignes où la colonne conf a une longueur de chaîne de 5 et la colonne pos une longueur de force de 7 sont renvoyées.
Remarque : Vous pouvez trouver la documentation complète de la fonction str.len() dans pandas ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment supprimer des lignes dans Pandas DataFrame en fonction de la condition
Comment filtrer un DataFrame Pandas sur plusieurs conditions
Comment utiliser le filtre « NON IN » dans Pandas DataFrame