0
votes

Effectuer le remplacement de la sous-chaîne à mots avec Pandas Str.replace

J'ai une colonne de texte de l'exemple de cadre de données contenant des chaînes, y compris le mot 'eng' et le mot "moteur". xxx

Je veux remplacer le mot "eng" avec le mot "moteur". J'utilise le code ci-dessous: xxx

mais cela gâche mon texte dans ma deuxième rangée. La deuxième ligne devient xxx

est un moyen de faire le mot remplacer afin que cela ne remplace que lorsque le mot entier indique "eng 'seulement?


0 commentaires

3 Réponses :


8
votes

Enveloppez votre mot-clé avec le caractère de la limite de mot \ b : xxx


Si vous avez plusieurs mots-clés à remplacer de cette manière, passez un dictionnaire à remplacer par le REGEX = true interrupteur: xxx


5 commentaires

Jolie photo ! :-)


@ W-b, lequel :-) la photo de Coldspeed?


@ W-b merci! Nouvel An, nouveau profil :)


Bonne photo avec changement de nouvel an! Bingo! Bonne année.


@pygo Tyvm, bonne année!



1
votes

Vous pouvez essayer des expressions régulières comme:

import re
df['Text'] = df['Text'].map(lambda x: re.sub(r'\beng\b', 'engine', x))


0 commentaires

4
votes

Ajout d'un blanc et corrigé ce problème à partir de votre propre code xxx

update xxx


8 commentaires

Hmm, cela correspondra toujours à " blaheng ', quand il devrait correspondre juste " eng' .


Cela doit inclure les limites de mots pour correspondre à la chaîne exacte.


et ne pas correspondre aux cas où la chaîne se termine par ENG. Ce n'est pas une mauvaise solution par aucun moyen si vous connaissez les cas de bord, mais ce n'est pas très robuste.


@ColdSpeed ​​Yep Vous avez raison, et mettez à jour ... Je pensais que je devrais supprimer, mais que de nombreuses personnes ont déjà vu ma faute, je voudrais le corriger.


@pygo vérifier la mise à jour


@Paritoshsingh Vérifiez la mise à jour et merci de l'avoir signalé


@ W-b, thnx, bonne année!


@pygo vous aussi:> bonne année