- [programmation python] -prix espace 100n & 1000ers
- Espace insécable word - Guide
- Espace de stockage gmail plein - Guide
- Citizen code python avis - Accueil - Outils
- Application de programmation - Guide
- Espace stockage google - Guide
6 réponses
1 juin 2023 à 08:11
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).
Modifié le 1 juin 2023 à 11:16
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 questionModifié le 1 juin 2023 à 13:28
def filtre_Prix(x): x = x.replace(",", ".") x = x.replace(" ", "") x = float(x) return(x) DF['Prix_clean'] = DF['Prix'].map(filtre_Prix) print(DF['Prix_clean'])