IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[Pandas][ExcelWriter] Gestion de données


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 45
    Par défaut [Pandas][ExcelWriter] Gestion de données
    Bonjour,

    Le code ci-joint permet d'ouvrir une feuille Excel, récupérer des données, les traiter et écrire les résultats dans une autre feuille de calcul.
    Ce qui est étrange, c'est qu'il fonctionne la première fois, mais la seconde fois un problème apparaît. Et je ne sais pas comment corriger le problème. Python ne me retourne pas d'erreur.
    Le programme somme les différents total puis écrit le nombre d'articles vendu en fonction de l'article.
    La deuxième fois, on voit que les valeurs TOTAL CB, Espèce ou Chèque disparaissent et je ne comprends pas pourquoi.
    Je lance le code la première fois
    Nom : Capture1.JPG
Affichages : 263
Taille : 28,5 Ko
    Je relance le code
    Nom : Capture2.JPG
Affichages : 222
Taille : 26,7 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import pandas as pd
    import numpy as np
    import xlsxwriter
    from openpyxl import load_workbook
    from pandas import ExcelWriter
    from pandas import ExcelFile
    data=pd.read_excel("site.xlsx","Feuille1", keep_default_na=False, skiprows = [0,1]) 
    print(data)
     
    totalballon=[]
    b=[]
    espece=np.where(data['Unnamed: 2']=='TOTAL Espèces')[0]
    carte=np.where(data['Unnamed: 2']=='TOTAL CB')[0]
    cheque=np.where(data['Unnamed: 2']=='TOTAL Chèque')[0]
     
    articles=["Ballon bleu", "CH24 jaune", "Ballon rouge", "Chapeau", "Ballon vert", "Pantalon", "Fleurs"]
     
    print(np.sum(data['Unnamed: 4'][espece]))
    print(np.sum(data['Unnamed: 4'][carte]))
    print(np.sum(data['Unnamed: 4'][cheque]))
     
    for i in articles:
        nb=np.where(data['Unnamed: 2']==i)[0]
        b.append(np.sum(data['Unnamed: 1'][nb]))
    print(b)
     
    ballon=["Ballon bleu", "Ballon rouge", "Ballon vert"]
     
    for j in ballon:
        nb=np.where(data['Unnamed: 2']==j)[0]
        totalballon.append(np.sum(data['Unnamed: 1'][nb]))
    totalballon=[sum(totalballon)]
    print(totalballon)
     
    with pd.ExcelWriter('site.xlsx', engine='openpyxl') as writer:
        writer.book = load_workbook('site.xlsx')
     
        TOTALespece = np.sum(data['Unnamed: 4'][espece])
        TOTALcarte = np.sum(data['Unnamed: 4'][carte])
        TOTALcheque = np.sum(data['Unnamed: 4'][cheque])
     
        df1 = pd.DataFrame({'articles':articles})
        df2 = pd.DataFrame({'nombres':b})
        df3 = pd.DataFrame({'Total ballon':totalballon})
     
        dfe = pd.DataFrame({'TOTAL Espèces':[TOTALespece]})
        dfcarte = pd.DataFrame({'TOTAL CB':[TOTALcarte]})
        dfcheque = pd.DataFrame({'TOTAL Chèque':[TOTALcheque]})
     
        df1.to_excel(writer, "Feuille2", index=False)
        df2.to_excel(writer, "Feuille2", index=False, startcol=1)
        df3.to_excel(writer, "Feuille2", index=False, startcol=2)
        dfe.to_excel(writer, "Feuille2", index=False, startcol=3)
        dfcarte.to_excel(writer, "Feuille2", index=False, startcol=4)
        dfcheque.to_excel(writer, "Feuille2", index=False, startcol=5)
    C'est l'écriture des variables qui créer le problème. On peut lancer le code plusieurs fois sans écrire et il détecte toujours les valeurs 'TOTAL' mais après écriture le code ne détecte plus les 'TOTAL'
    Je vous conseil de faire une copie du fichier Excel puis de tester le programme sur la copie.
    Si vous avez le temps de jeter un œil s'il vous plaît.
    Je vous en remercie
    Pour info j'utilise anaconda3 64 bits Jupyter Notebook
    Le fichier excel sous format .xlsx
    site.xlsx
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 45
    Par défaut Excel signe €
    Bonjour,
    J'ai remarqué ce problème. Voici mon fichier excel avant le code:
    Nom : excel1.PNG
Affichages : 197
Taille : 12,2 Ko
    et voici après fait tourné le code:
    Nom : excel2.PNG
Affichages : 200
Taille : 10,1 Ko
    On voit que le signe € à disparu et je ne comprend pas pourquoi ?
    Je pense que c'est l'origine de mon problème et j'aimerais que le signe € ne disparaisse pas.
    Si quelqu'un peut m'aider.
    Je vous en remercie.

  3. #3
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Il y a trop de 'print'
    En séparant par bloc ou fonction , les améliorations seront possible

Discussions similaires

  1. [Système] Système de gestion de donnée
    Par SpiritOfDoc dans le forum Langage
    Réponses: 11
    Dernier message: 03/04/2007, 18h22
  2. Réponses: 2
    Dernier message: 07/03/2007, 16h22
  3. Réponses: 9
    Dernier message: 09/05/2006, 16h11
  4. Réponses: 9
    Dernier message: 17/04/2004, 16h32
  5. Réponses: 3
    Dernier message: 24/11/2003, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo