[programmation python] -prix espace 100n & 1000ers
PierrotLeFou -
Bonjour,
Bonjour,
Ceci est mon premier message sur ce forum.
Je débute en python et je suis bloqué depuis plusieurs jours sur cette problématique.
J'aimerais, à partir d'une extraction ebay, convertir ma colonne Prix en float tout en gardant les valeurs supérieures à 999,99EUR (Cf. Photos)
Le problème est que les valeurs supérieures à 999,99EUR s'affichent en Nan.(Cf. photos)
J'ai essayé les replace(), split()....mais rien ne marche.
Voici mon code :
#On va creer une fonction prix pour convertir la colonne des prix en float (nombre à virgule), afin de pouvoir faire des calculs et de la data viz.
def filtre_Prix(x) :
#Si l'insight est different d'une string, on garde le texte.
if type(x) != str :
return (x)
#Si la longueur du texte est supérieure à 2 caractères, on supprime les centimes d'euros (Si qqn a la fonction arrondi ça m'intéresse aussi :D)
else :
if len(x) > 2 :
txt = x[0:-4]
#Et, on supprime les espaces vides.
DF['Prix'] = DF['Prix'].str.replace(' ', '')
#Ici on separe le texte avec une virgule et on la transforme en point.
txt = txt.split(",")
txt = ".".join(txt)
try:
return (float(txt))
except:
print(x)
#Et on remplace la colonne tranformée par l'ancienne.
DF['Prix_clean'] = DF['Prix'].map(filtre_Prix)
print(DF['Prix_clean'])
# DF.info()
Merci par avance pour votre aide.
Macintosh / Chrome 113.0.0.0
- [programmation python] -prix espace 100n & 1000ers
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Citizen code python avis - Accueil - Outils
- Espace stockage google - Guide
- Application de programmation - Guide
6 réponses
Bonjour
pour tes prochains message, merci d'utiliser la coloration syntaxique comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Peux tu poster le fichier d'extraction d'ebay, en choisissant la coloration xml, ainsi que le code qui sépare les colonnes ?
Bonjour,
Ceci est mon premier message sur ce forum.
Je débute en python et je suis bloqué depuis plusieurs jours sur cette problématique.
J'aimerais, à partir d'une extraction ebay, convertir ma colonne Prix en float tout en gardant les valeurs supérieures à 999,99EUR (Cf. Photos)
Le problème est que les valeurs supérieures à 999,99EUR s'affichent en Nan.(Cf. photos)
J'ai essayé les replace(), split()....mais rien ne marche.
Voici mon code :
#On va creer une fonction prix pour convertir la colonne des prix en float (nombre à virgule), afin de pouvoir faire des calculs et de la data viz.
def filtre_Prix(x) :
#Si l'insight est different d'une string, on garde le texte.
if type(x) != str :
return (x)
#Si la longueur du texte est supérieure à 2 caractères, on supprime les centimes d'euros (Si qqn a la fonction arrondi ça m'intéresse aussi :D)
else :
if len(x) > 2 :
txt = x[0:-4]
#Et, on supprime les espaces vides.
DF['Prix'] = DF['Prix'].str.replace(' ', '')
#Ici on separe le texte avec une virgule et on la transforme en point.
txt = txt.split(",")
txt = ".".join(txt)
try:
return (float(txt))
except:
print(x)
#Et on remplace la colonne tranformée par l'ancienne.
DF['Prix_clean'] = DF['Prix'].map(filtre_Prix)
print(DF['Prix_clean'])
# DF.info()
Merci pour votre aide :)
P:S. : Pour ce qui est du fichier je ne vois pas où je peux le poster (le post ne supporte pas le poids du fichier).
Bonjour,
Pour la coloration syntaxique, ce n'est pas encore ça ....
prix = '2101,04' prix = prix.replace(',', '.') prix_f = float(prix)
#On va creer une fonction prix pour convertir la colonne des prix en float (nombre à virgule), afin de pouvoir faire des calculs et de la data viz. def filtre_Prix(x) : #Si l'insight est different d'une string, on garde le texte. if type(x) != str : return (x) #Si la longueur du texte est supérieure à 2 caractères, on supprime les centimes d'euros (Si qqn a la fonction arrondi ça m'intéresse aussi :D) else : if len(x) > 2 : txt = x[0:-4] #Et, on supprime les espaces vides. DF['Prix'] = DF['Prix'].str.replace(' ', '') #Ici on separe le texte avec une virgule et on la transforme en point. txt = txt.split(",") txt = ".".join(txt) try: return (float(txt)) except: print(x) #Et on remplace la colonne tranformée par l'ancienne. DF['Prix_clean'] = DF['Prix'].map(filtre_Prix) print(DF['Prix_clean']) # DF.info()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question