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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *