Bonsoir,
J'essaie d'obtenir cela:
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
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
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()
J'ai essayé de nombreuses possibilités sans aucune réussite.
Merci pour votre aide
Eric
Partager