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 :

Dask grouby + count [Python 3.X]


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Points : 100
    Points
    100
    Par défaut Dask grouby + count
    Bonsoir,

    J'essaie d'obtenir cela:

    Nom : Capture d’écran 2021-01-31 174453.png
Affichages : 71
Taille : 14,4 Ko

    un regroupement par société et numéro de compte à partir de python sans succès

    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
     
     
    import tarfile
    import pandas as pd
     
    with tarfile.open("C:/Users/ericm/Documents/EE/V2_GLFI.tar.gz", "r:*") as tar:
     
        for n in tar.getnames():
     
            if n.endswith('.TXT'):
     
                try:
     
                    result = [(0, 4), (181, 182), (504, 505), (515, 530), (637, 647)]
     
                    df = pd.read_fwf(tar.extractfile(n),colspecs=result, header=None, names=['Societe', 'Statut', 'Code','Montant','Compte'],encoding="utf_8_sig")            
     
                    df = df.assign(Somme = lambda x: x.Montant * x.Code.replace({'H' : 1, 'S' : -1}))
     
                    sansStatut = pd.isnull(df["Statut"])
     
                    nom = n.replace(".TXT",".csv")
     
                    filename = 'C:/Users/ericm/Documents/NOTEBOOK/PNS/data/' + nom
     
                    df[sansStatut].loc[:,['Societe','Compte','Somme']].to_csv(filename,index=False)
     
                except pd.errors.EmptyDataError:
     
                    continue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    import dask.dataframe as dd
     
    ddf = dd.read_csv('data/*.csv')
    ddf

    Nom : Capture d’écran 2021-01-31 175001.png
Affichages : 60
Taille : 9,7 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ddf.to_parquet('data/2021-01.parquet', engine='pyarrow')
    ddf = dd.read_parquet('data/2021-01.parquet', engine='pyarrow')
    ddf
    Nom : Capture d’écran 2021-01-31 175125.png
Affichages : 59
Taille : 6,6 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    resultat = ddf['Somme'].sum().compute()
     
    if resultat < 10**-3:
        resultat = 0
     
    print ("Totalisation Somme => " , resultat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ddf.groupby[('Societe', 'Compte')].Somme.sum().compute()
    Nom : Capture d’écran 2021-01-31 175603.png
Affichages : 58
Taille : 8,9 Ko

    J'ai essayé de nombreuses possibilités sans aucune réussite.

    Merci pour votre aide

    Eric

  2. #2
    Membre régulier
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Points : 100
    Points
    100
    Par défaut
    Nom : Capture d’écran 2021-01-31 213852.png
Affichages : 48
Taille : 15,6 Ko

    Un mieux il me reste à calculer le nombre d'enregistrement

    Eric

  3. #3
    Membre régulier
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Points : 100
    Points
    100
    Par défaut
    Nom : Capture d’écran 2021-02-03 105300.png
Affichages : 44
Taille : 24,7 Ko

    Eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UNION et COUNT(*)
    Par Goldust dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/08/2003, 09h30
  2. limiter le résultat retourné par le count
    Par SuperFoustan dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/08/2003, 12h10
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. Multiple Count
    Par Antichoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2003, 11h19
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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