Comment extraire un numéro d’une chaîne dans Pandas



Vous pouvez utiliser la syntaxe de base suivante pour extraire des nombres d’une chaîne dans pandas :

df['my_column'].str.extract('(\d+)')

Cette syntaxe particulière extraira les nombres de chaque chaîne dans une colonne appelée my_column dans un DataFrame pandas.

Remarque : Lorsque vous utilisez une expression régulière, \d représente « n’importe quel chiffre » et + signifie « un ou plusieurs ».

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

Exemple : extraire le numéro d’une chaîne dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les ventes de divers produits :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'product': ['A33', 'B34', 'A22', 'A50', 'C200', 'D7', 'A9', 'A13'],
                   'sales': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print(df)

  product  sales
0     A33     18
1     B34     22
2     A22     19
3     A50     14
4    C200     14
5      D7     11
6      A9     20
7     A13     28

Supposons que nous souhaitions extraire le numéro de chaque chaîne de la colonne produit .

Nous pouvons utiliser la syntaxe suivante pour ce faire :

#extract numbers from strings in 'product' column
df['product'].str.extract('(\d+)')

	0
0	33
1	34
2	22
3	50
4	200
5	7
6	9
7	13

Le résultat est un DataFrame qui contient uniquement les nombres de chaque ligne de la colonne produit .

Par exemple:

  • La formule extrait 33 de la chaîne A33 de la première ligne.
  • La formule extrait 34 de la chaîne B34 de la première ligne.
  • La formule extrait 22 de la chaîne A22 de la première ligne.

Et ainsi de suite.

Si vous le souhaitez, vous pouvez également stocker ces valeurs numériques dans une nouvelle colonne du DataFrame :

#extract numbers from strings in 'product' column and store them in new column
df['product_numbers'] = df['product'].str.extract('(\d+)')

#view updated DataFrame
print(df)

  product  sales product_numbers
0     A33     18              33
1     B34     22              34
2     A22     19              22
3     A50     14              50
4    C200     14             200
5      D7     11               7
6      A9     20               9
7     A13     28              13

La nouvelle colonne appelée product_numbers contient uniquement les numéros de chaque chaîne de la colonne produit .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Pandas : Comment trier le DataFrame en fonction de la colonne de chaîne
Pandas : Comment supprimer des caractères spécifiques des chaînes
Pandas : rechercher une chaîne dans toutes les colonnes de DataFrame

Ajouter un commentaire

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