Fonction pour enlever les caractères qui ne marche pas
Bonjour,
J'ai utilisé la fonction suivante pour retirer les caractères spéciaux de mon dataframe. Cependant, quand j'active la fonction, rien ne change et je n'arrive pas à savoir pourquoi. Pouvez-vous m'éclairer là-dessus svp?
b="!@#$" def remove_character(x): for char in b: x=x.str.replace(char, " ") print(x) remove_character(df)
Windows / Edge 107.0.1418.35
6 réponses
-
Bonjour,
Tu appelles la fonction remove_character en lui passant df comme argument
Mais df est initialisé où ?????
De plus ce serait plutôt
x=x.replace(char," ")
-
Hello,
c'est le nom de mon dataframe :) . Il est initialisé dans mon code déjà.
Merci!
-
et ça ne marche non plus avec seulement x.replace(char, " ")..
-
En tout cas, ça, ça marche:
x='abc' x=x.replace('a','d')Faudrait voir ce que contient df
Ça se présente comme une chaine de caractères, comme ma variable x ci-dessus ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
peux-tu partager un exemple complet, que nous puissions tester?
-
Bonjour,
La méthode pandas.DataFrame.replace existe bien, mais ne fonctionne pas comme str.replace (voir la documentation pour comprendre ce que ça fait). C'est pour ça que ça ne fait pas ce que tu veux.
Ici, une approche possible consiste à utiliser pandas.DataFrame.applymap :
import pandas as pd def clean(x): if isinstance(x, str): return "".join(a for a in x if a not in set("!@$")) else: return x df = pd.DataFrame(["a!b@c$", "d!e@f$"]) df.applymap(clean) print(df)Résultat :
0 0 abc 1 defBonne chance