Python : remplacer une cellule d'un CSV
Résolu/Fermé
Medestrac
-
6 janv. 2023 à 13:29
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 6 janv. 2023 à 16:57
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 6 janv. 2023 à 16:57
A voir également:
- Python : remplacer une cellule d'un CSV
- Citizen code python avis - Accueil - Outils
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
- Python pix ✓ - Forum Python
3 réponses
Bonjour, les 0, 1, 2, .., n sont évidement les numéros de lignes.
Sinon, tu peux très facilement faire cela avec csv.
import csv with open(LE_FICHIER_CSV) as f: reader = csv.DictReader(f) # construction d'un dict nom:prix fruits = {dico['Article']:int(dico['Prix']) for dico in reader} # Augmentation du prix de la banane de 10%, l'importation devient chère ! fruits['Banane'] *= 1.1 # Et enfin enregistrement with open(LE_FICHIER_CSV, 'w') as fw: writer = csv.writer(fw) writer.writerow(reader.fieldnames) for fruit, prix in fruits.items(): writer.writerow((fruit, prix))
Sans doute qu'en sortant l'artillerie lourde comme panda on peut peut-être faire plus simple, mais ne connaissant pas panda, je laisse le soin à d'autres de répondre.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
6 janv. 2023 à 16:57
6 janv. 2023 à 16:57
Bonjour,
Comme l'indique roupilleur, pandas est un peu surdimensionné pour manipuler un csv.
Comme la méthode avec csv est déjà donnée, voici comment tu pourrais faire en pandas. L'instruction suivante multiplie le prix des bananes par 10 :
df.loc[df["Article"] == "Banane", ["Prix"]] *= 10
... et celle-ci l'affecte à 12 :
df.loc[df["Article"] == "Banane", ["Prix"]] = 12
Ensuite tu peux réécrire ton csv avec pandas.to_csv.
Bonne chance