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