3 votes

Supprimer les valeurs des colonnes si elles commencent par une chaîne spécifique pandas

J'ai un pandas dataframe(sample).

id  name
1   Mr-Mrs-Jon Snow
2   Mr-Mrs-Jane Smith
3   Mr-Mrs-Darth Vader

Je cherche à supprimer les "Mr-Mrs-" du dataframe, c'est-à-dire que la sortie devrait être :

id  name
1   Jon Snow
2   Jane Smith
3   Darth Vader

J'ai essayé d'utiliser

df['name'] = df['name'].str.lstrip("Mr-Mrs-")

Mais ce faisant, certains alphabets des noms de certaines lignes sont également supprimés.

Je ne veux pas exécuter une boucle et faire .loc pour chaque ligne, y a-t-il une meilleure façon/optimisée d'y parvenir ?

4voto

mozway Points 233

Ne vous déshabillez pas, replace en utilisant une ancre de début de chaîne ( ^ ) :

df['name'] = df['name'].str.replace(r"^Mr-Mrs-", "", regex=True)

Ou removeprefix :

df['name'] = df['name'].str.removeprefix("Mr-Mrs-")

Sortie :

id         name
1      Jon Snow
2    Jane Smith
3   Darth Vader

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X