Pandas : Comment obtenir une sous-chaîne d’une colonne entière



Vous pouvez utiliser la syntaxe de base suivante pour obtenir la sous-chaîne d’une colonne entière dans un DataFrame pandas :

df['some_substring'] = df['string_column'].str[1:4]

Cet exemple particulier crée une nouvelle colonne appelée some_substring qui contient les caractères des positions 1 à 4 dans string_column .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : obtenir une sous-chaîne de la colonne entière dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur diverses équipes de basket-ball :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   'points': [120, 132, 108, 118, 106]})

#view DataFrame
print(df)

        team  points
0  Mavericks     120
1   Warriors     132
2    Rockets     108
3    Hornets     118
4     Lakers     106

Nous pouvons utiliser la syntaxe suivante pour créer une nouvelle colonne contenant les caractères de la colonne équipe entre les positions 1 et 4 :

#create column that extracts characters in positions 1 through 4 in team column
df['team_substring'] = df['team'].str[1:4]

#view updated DataFrame
print(df)

        team  points team_substring
0  Mavericks     120            ave
1   Warriors     132            arr
2    Rockets     108            ock
3    Hornets     118            orn
4     Lakers     106            ake

La nouvelle colonne appelée team_substring contient les caractères de la colonne team entre les positions 1 et 4.

Notez que si vous tentez d’utiliser cette syntaxe pour extraire une sous-chaîne d’une colonne numérique, vous recevrez une erreur :

#attempt to extract characters in positions 0 through 2 in points column
df['points_substring'] = df['points'].str[:2]

AttributeError: Can only use .str accessor with string values!

Au lieu de cela, vous devez d’abord convertir la colonne numérique en chaîne en utilisant astype(str) :

#extract characters in positions 0 through 2 in points column
df['points_substring'] = df['points'].astype(str).str[:2]

#view updated DataFrame
print(df)

        team  points points_substring
0  Mavericks     120               12
1   Warriors     132               13
2    Rockets     108               10
3    Hornets     118               11
4     Lakers     106               10

Cette fois, nous sommes en mesure d’extraire avec succès les caractères des positions 0 à 2 de la colonne de points car nous les avons d’abord convertis en chaîne.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : Vérifiez si la chaîne contient plusieurs sous-chaînes
Pandas : comment ajouter une chaîne à chaque valeur dans une colonne
Pandas : comment sélectionner des colonnes contenant une chaîne spécifique

Ajouter un commentaire

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