2
votes

Comment utiliser la syntaxe des expressions régulières pour supprimer les "points de suspension" du texte dans une colonne donnée?

J'utilise ce code mais il ne supprime pas les "points de suspension":

La revue de la colonne contient 1500 lignes de texte

Df["Reviews"] = Df['Reviews'].apply(lambda x : " ".join(re.findall('[\w\.]+',x)))

Un exemple de texte serait: "le concessionnaire a dit il ne rembourse pas les concessionnaires pour les prêts ou les locations ... alors pourquoi même être concessionnaire s'ils fabriquent des voitures défectueuses et que vous êtes en ligne pour aider les clients "


2 commentaires

Veuillez modifier votre question lorsque vous souhaitez ajouter des informations supplémentaires


Essayez ceci - stackoverflow.com/questions/7208861 /… ou essayez d'utiliser "\" avant les points de suspension et définissez regex = true.


3 Réponses :


0
votes

Series.str.replace devrait fonctionner pour des expressions simples:

df.Reviews.str.replace("...", "")


4 commentaires

ne devrait-il pas être regex = True?


ça ne marche pas vraiment pour moi


Je pense que '\ ...' est le bon modèle, et @ Sid29 .str.replace utilise par défaut regex = True


la fonction de remplacement ne fonctionne pas du tout



0
votes

Si vous souhaitez supprimer ce mot spécifique de chaque ligne, vous n'avez pas besoin d'utiliser RegEx. Vous pouvez utiliser str.replace comme indiqué ici: Comment supprimer un mot spécifique d'une chaîne?

Df["Reviews"] = Df['Reviews'].apply(lambda x:x.replace("ellipsis",""))


1 commentaires

par points de suspension, je veux dire "..."



1
votes

Vous pouvez essayer l'une des méthodes ci-dessous:

Avec REGEX

import re
regex = r"(\W)\1+"
test_str = "dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers"
subst = "\\1"
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)   
if result:
    print (result)

Avec REGEX

import re
regex = r"[.]+"
test_str = "dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers" 
subst = "."
result = re.sub(regex, subst, test_str, 0, re.MULTILINE | re.IGNORECASE)
if result:
    print (result)

Avec REGEX

import pandas as pd
pd.set_option('max_colwidth', 400)
df = pd.DataFrame({'Reviews':['dealer said it does not reimburse dealers for loaners or rentals... so why even be a dealership if they make faulty cars and you re on the line to help customers']})
df['Reviews'] = df['Reviews'].replace('\.+','.',regex=True)
print(df)


6 commentaires

intéressant, laisse-moi essayer ça


@Saud J'ai ajouté une nouvelle réponse avec les pandas, je vous conseille vivement d'essayer ça


veuillez partager la réponse avec les pandas, ce serait intéressant


@Saud a ajouté une réponse avec pandas , regardez à nouveau


oui, les pandas fonctionnent, merci


bonne chance :)