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 :

Addition et contrôle de temps


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 112
    Par défaut Addition et contrôle de temps
    Bonjour
    J'ai une colonne qui contient plusieurs durées séparées par un point-virgule dans chaque cellule,
    04:10;02:10;08:00....
    Je désirerais contrôler sont temps si supérieurs à 240 alors j'enlève 60 minutes et additionné le résultat
    J'arrive à le faire avec une boucle for
    Mais je voudrais le faire avec une matrice pour augmenter la vitesse
    Quelqu'un a une idée
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Va falloir être plus clair...
    Pas sûr que numpy va te faire gagner en performance.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 112
    Par défaut
    suite à un import CSV dans panda
    j'ai une colonne et dans chaque cellule j'ai plusieurs durée le nombre est aleatoire

    08:00;06:30;09:30;02:00... --->26h
    06:30;09:30;02:00;02:00.... -->20
    02:00;02:00;08:00;08:00.... -->20

    j'ai besoin d'avoir la somme de chacune des cellules
    par contre si une des valeurs est superieur à 04:00 alors je dois enlevé une heure

    ce qui représenterais ça
    07:00;05:30;08:30;02:00 -->23h
    05:30;08:30;02:00;02:00 -->18h
    02:00;02:00;07:00;07:00 -->18h
    j'espere que cela est plus claire

    amicalement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne connais pour ainsi dire rien à pandas, une rapide recherche m'a permis d'obtenir un tableau en 2D (enfin je crois) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tab = pd.read_csv(r'C:\Users\toto\Desktop\Scripts\TEST\pour_test.csv',sep=';',header=None)
           0      1      2      3
    0  08:00  06:30  09:30  02:00
    1  06:30  09:30  02:00  02:00
    2  02:00  02:00  08:00  08:00
    Je te propose un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> for line in tab.values:
    	for i, cell in enumerate(line):
    		cell=cell.split(':')
    		cell[0], cell[1] = int(cell[0])*60, int(cell[1])
    		if sum(cell)>240:
    			cell[0] -= 60
    			cell[0] = int(cell[0]/60)
    			cell = f"{cell[0]:02d}:{cell[1]:02d}"
    			line[i] = cell
    Les pros te conseilleront mieux ! =)
    Wait & See

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Pour moi, pratiquement la même chose, en tout cas même logique ... (problème d'indentation après cell[0] -= 60 et réserve sur le line[i] = cell puisque line est une variable interne à la boucle)
    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
    import random
     
    maximum = 4*60
     
    h = list(range(1,12))
    m = list(range(0,46,15))
    datas = []
    for i in range(0,12):
        datas.append([f"{random.choice(h):02d}:{random.choice(m):02d}" for x in range(0,4)])
     
    for item in datas:
        print(item, end =" -> ")
        totalmn = 0
        decrement = ""
        for heure in item:
            h,m = (int(x) for x in heure.split(":", 1))
            h *=60
            if h+m > maximum:
                h -= 60
                decrement += " -1 "
            totalmn += h+m
        heuret = int(totalmn/60)
        print(f"{heuret:2.0f}h {totalmn-(heuret*60):02d}mn", decrement)

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Si on regarde un peu ce qu'on peut faire avec pandas, déjà il faut convertir les durées en une unité gérable (des minutes ou des timedelta) à la lecture du CSV.
    Ce qui peut se faire avec:
    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
    data = '''08:00;06:30;09:30;02:00
    06:30;09:30;02:00;02:00
    02:00;02:00;08:00;08:00
    '''
     
    from io import StringIO
    import pandas as pd
    import datetime as dt
     
    f = StringIO(data)
     
    def str_to_dt(s):
     
        h, m = [ int(z) for z in s.split(':') ]
        return dt.timedelta(hours=h, minutes=m)
     
    df = pd.read_csv(f, sep=';', header=None, converters={ i: str_to_dt for i in range(5)})
    Après on peut faire la somme de chaque lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> df.sum(axis=1)
    0   1 days 02:00:00
    1   0 days 20:00:00
    2   0 days 20:00:00
    dtype: timedelta64[ns] 
    >>>
    ou récupérer la matrice des durées > 02h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> df.ge(dt.timedelta(hours=4), axis=1)
           0      1      2      3
    0   True   True   True  False
    1   True   True  False  False
    2  False  False   True   True
    >>>
    et faire la somme des lignes (les booléens sont des entiers):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> df.ge(dt.timedelta(hours=4), axis=1).sum(axis=1)
    0    3
    1    2
    2    2
    dtype: int64
    finalement, on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> df.sum(axis=1) - df.ge(dt.timedelta(hours=4), axis=1).sum(axis=1)*dt.timedelta(hours=1)
    0   0 days 23:00:00
    1   0 days 18:00:00
    2   0 days 18:00:00
    dtype: timedelta64[ns]
    Tout ça pour dire qu'on doit pouvoir faire ça avec un code Python "normal" (comme l'ont montré mes collègues) en plus de lignes certes mais si on ne s'est pas plongé dans l'apprentissage des bases, ça va être duraille de le faire avec pandas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par pratick Voir le message
    pour augmenter la vitesse
    Dans même code mais avec calcul de la "vitesse"

    Note: sans panda: on lit le fichier texte ligne par ligne donc moins de consommation mémoire

    Pour un fichier de 10 000 lignes (sur ssd et pas un foudre de guerre: i3)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    01:30;04:00;01:00;09:45 --> 15h 15mn  -1 
    03:45;11:30;03:15;08:45 --> 25h 15mn  -1  -1 
    07:00;09:45;10:15;02:15 --> 26h 15mn  -1  -1  -1 
    06:30;11:15;09:15;04:30 --> 27h 30mn  -1  -1  -1  -1 
    ...
    0.2206135419983184     # avec print
    0.06474568500198075    # sans affichage
    Donc, ici c'est l'affichage qui ralenti (et ne compte pas), mais dans tous les cas c'est bien en dessous de la seconde (reste à savoir ce que l'on désire comme temps max ...). Tu ne donnes pas une idée du nombre de lignes et colonnes
    avec 10 000 lignes et 44 colonnes, rien de plus méchant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    07:30;07:15;06:45;09:45;05:00;03:30;03:00;04:30;08:30;04:00;11:00;03:00;07:15;04:00;11:30;05:45;04:00;01:15;11:30;08:00;01:00;11:45;03:30;02:15;02:00;07:00;02:15;01:30;05:00;07:45;03:15;08:15;08:45;02:45;06:30;09:00;06:15;02:45;08:00;09:00;08:30;05:00;08:00;05:15 --> 234h 15mn  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1 
    1.17615556400051
    0.5425831639986427
    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
     
    import random
    import timeit
     
    maximum = 4*60
    nombre = 10000  # nombre de lignes dans csv
    display = True
     
    h = list(range(1, 12))
    m = list(range(0,46, 15))
     
    with open("test.csv", "w") as csv:
        for i in range(0, nombre):
            items = [f"{random.choice(h):02d}:{random.choice(m):02d}" for x in range(0, 4)]
            csv.write(";".join(items) + "\n")
     
     
    def decomposer(line: str):
        totalmn = 0
        decrement = ""
        for heure in line.split(";"):
            h, m = (int(x) for x in heure.split(":", 1))
            h *= 60
            if h+m > maximum:
                h -= 60
                decrement += " -1 "
            totalmn += h+m
        heuret = int(totalmn/60)
        return int(totalmn/60), totalmn-(heuret*60), decrement
     
    def lire():    # devrait être un générateur
        with open("test.csv", "r") as csv:
            for line in csv:
                heure, minute, decrement = decomposer(line)
                # yield heure, minute
                msg = f"{line.strip()} --> {heure:2.0f}h {minute:02d}mn"
                if display:
                    print(msg, decrement)
     
     
    print(timeit.timeit(lire, number=1))
    display = False
    print(timeit.timeit(lire, number=1))
    ------------

    Te reste à mesurer le même fichier avec panda (ou autres) pour pouvoir faire un choix Si tu ne le fais pas, tu ne peux avoir de réponse.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 112
    Par défaut
    bonjour,
    tout d'abord merci
    car j'ai déjà appris beaucoup de chose et des directions complètements différentes
    et une fonction "{random.choice(h):02d}:{random.choice(m):02d}" en prime..

    par contre je suis obligé de passé par un csv téléchargé car je fais de nombreux filtre pour limiter les lignes
    et je me retrouve avec un csv de ce type
    j'ai utilisé le code de papajoker ou lenarvalo, mais a chaque fois que j'essais de remplace la ligne par une list il refuse de me modifier car il ne comprend pas le premier caractère
    je continue mais essais et je vous tien au courant de mon avancé.

    Encore une immense merci pour toute cette immense entraide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    df=pd.read_csv('C:\\Users\II1154\\Desktop\\essais_excel\\1.csv', sep=';', encoding="ISO-8859-1")
     
    CODE_REGION;BT_INTERNE;TEMPS_RESERVATION
    NO;OUI;"02:12 HEURES;02:12 HEURES"
    NO;OUI;"06:15 HEURES;06:15 HEURES;06:15 HEURES"
    NO;OUI;"04:45 HEURES;04:45 HEURES"
    NO;OUI;"06:15 HEURES;06:15 HEURES;06:15 HEURES;06:15 HEURES;06:15 HEURES"

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Si tu changes de format du jour au lendemain, normal que le code ne fonctionne plus

    Tu dis faire un "filtre" avec panda, c'est donc toi qui choisi délibérément de resortir ces 2 colonnes CODE_REGION;BT_INTERNE; ? Tu pouvais donc sortir avec pandas un tableau plus exploitable ?

    Avec ton nouveau format, c'est adaptable de niveau débutant : A toi de faire un filtre sur la colonne, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # decoupe line en colonnes
    si colonne ne se termine pas par "HEURE":
        continue
    colonne = on_supprime_le_mot_heure(colonne)
    on_supprime_le_mot_heure()
    - soit on supprime la fin
    - soit on récupère que le début

    je fais de nombreux filtre pour limiter les lignes
    pas clair, si je fais un filtre c'est pour avoir que les lignes pertinantes (par exemple sur une année), le nombre de ligne n'a rien à voir : dans mon exemple, 10 000 lignes c'est du pipi de chat pour python, puisque ton fichier vient d'excel, je suppose que tu n'as pas 1 million de lignes ?
    Et il est extraimement simple de faire un filtre avec du python pur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # decoupe line en colonnes
    si colonne1 != "NO" ou colonne2 != "OUI" :
        continue
    # ou telmot est dans ligne: continue

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 112
    Par défaut
    Bonjour papajoker
    voila j'ai integré les modification prévu,
    en essayant de diminué les vitesse, je suis passé d'un chargement en 12 minutes de mon XLSX d'origine à 2 minutes actuellement avec un script VBSCRIPT associé au python
    et en effet j'ai filtré sur NO puis remplacé par vide le mots " HEURES"
    et déclenché un split sur la colonne horaire pour créer une liste avec les heures
    en ajoutant la partie, calcult de temps, j'ai ajouté 10 minutes sans print
    par contre j'ai une petite erreur je n'arrive pas à enregistrer le résulta dans une colonne (temps_bt)



    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    # -*- coding: utf-8 -*-
    #write vbscript to file
    import pandas as pd
    import time
    from io import StringIO
    import pandas as pd
    import datetime as dt
     
     
    vbscript="""if WScript.Arguments.Count < 2 Then 
      WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv" 
      Wscript.Quit 
    End If 
    Dim oExcel 
    Set oExcel = CreateObject("Excel.Application") 
    oExcel.DisplayAlerts = FALSE 'to avoid prompts
    Dim oBook, local
    Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
    local = true 
    call oBook.SaveAs(WScript.Arguments.Item(1), 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, local) 'this changed
    oBook.Close False 
    oExcel.Quit 
    WScript.Echo "Done" 
    """;
     
    f = open('ExcelToCsv.vbs','wb')
    f.write(vbscript.encode('utf-8'))
    f.close()
     
     
    # create a list with sheet numbers you want to process
    sheets = map(str,range(1,2))
    print(sheets)
    time.sleep(1)
    # convert each sheet to csv and then read it using read_csv
    df={}
    from subprocess import call
    #excel='K:\\APPI\\crystal\BT\\liste_BT_202203.xlsx'
     
    excel='C:\\Users\II1154\\Desktop\\essais_excel\\liste_BT_202203.xlsx'
    for sheet in sheets:
        print(sheet)
        csv = 'C:\\Users\II1154\\Desktop\\essais_excel\\' + sheet + '.csv' 
     
    ##    csv = 'C:\\Users\II1154\\Desktop\\essais_excel\\' + sheet + '.csv' 
        call(['cscript.exe', 'C:\\Users\II1154\\Desktop\\essais_excel\\ExcelToCsv.vbs', excel, csv, sheet])
     
     
    df=pd.read_csv('C:\\Users\II1154\\Desktop\\essais_excel\\1.csv', sep=';', encoding="ISO-8859-1")
     
    print(df.columns)
    print(df)
    df =df [(df['CODE_REGION']=="NO")]
    df =df [(df['AGENT_RESERVE'].notnull()) ]
    df['TEMPS_RESERVATION'] = df['TEMPS_RESERVATION'].str.replace(' HEURES','')
     
     
     
    df['TEMPS_RESERVATION'] = df['TEMPS_RESERVATION'].str.split(';')
    df2 = pd.DataFrame(df)
    print('df1',df['TEMPS_RESERVATION'])
     
    h = list(range(1, 12))
    m = list(range(0,46, 15))
    maximum=270
    I=0
    df['temps_bt']=0
    for horaire in df['TEMPS_RESERVATION']:
     
        totalBt=0
        for horaire1 in horaire:
            totalmn = 0
            decrement = ""
            h, m = (int(x) for x in horaire1.split(":", 1))
            h *= 60
     
            if h+m > maximum:
                    h -= 75
                    decrement += " -1 "
                    totalmn += h+m
            totalmin=m+(h)
        totalBt=totalmin+totalBt
        df.at[I, 'temps_bt'] =totalBt
        print("totalBt",df.at[I, 'temps_bt'])
        I=I+1
    df.to_csv('C:\\Users\II1154\\Desktop\\essais_excel\\2.csv',sep=';', encoding="ISO-8859-1",index=False)

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Hello,
    Si je comprends bien tes données sources sont dans un fichier Excel, alors pourquoi t'embêter à passer par du python alors que tu peux tout faire dans Excel avec du VBA .
    Données de test :
    CODE_REGION;BT_INTERNE;TEMPS_RESERVATION
    NO;OUI;"02:12 HEURES;02:12 HEURES"
    NO;OUI;"06:15 HEURES;06:15 HEURES;06:15 HEURES"
    NO;OUI;"04:45 HEURES;04:45 HEURES"
    NO;OUI;"06:15 HEURES;06:15 HEURES;06:15 HEURES;06:15 HEURES;06:15 HEURES"
    NO;OUI;"08:00 HEURES;06:30 HEURES;09:30 HEURES;02:00 HEURES"
    NO;OUI;"06:30 HEURES;09:30 HEURES;02:00 HEURES;02:00 HEURES"
    NO;OUI;"02:00 HEURES;02:00 HEURES;08:00 HEURES;08:00 HEURES"
    En utilisant une fonction personnalisée VBA :
    Code vba : 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
    Function TempsReserv(Res)
    Dim arrTemps, elem
    Dim simpTps, cumulTps
    arrTemps = Split(Res, ";")
    For Each elem In arrTemps
      simpTps = TimeValue(Replace(elem, " HEURES", "") + ":00")
      If simpTps > TimeValue("04:00:00") Then simpTps = simpTps - TimeSerial(1, 0, 0)
      cumulTps = cumulTps + simpTps
    Next
    TempsReserv = Application.WorksheetFunction.Text(cumulTps, "[hh]:mm")
    End Function
     
     
    Sub TestTempsReserv() ' tester la fonction
    Debug.Print TempsReserv("04:12 HEURES;22:12 HEURES")
    End Sub

    Nom : TimeControl.PNG
Affichages : 445
Taille : 21,4 Ko

    Avec du code VBA (dans l'exemple ci-dessous pour plus de 200000 lignes) :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AllTempsReserv()
    Dim myRangeIn, myRangeOut As Range
    Dim myArrIn, myArrOut As Variant
    Set myRangeIn = Range("C2:C200082")
    Set myRangeOut = Range("D2:D200082")
    myArrIn = myRangeIn
    myArrOut = myRangeOut
    For i = 1 To UBound(myArrIn, 1)
        myArrOut(i, 1) = TempsReserv(myArrIn(i, 1))
    Next i
    myRangeOut = myArrOut
    myRangeOut.NumberFormat = "[hh]:mm"
    End Sub

    Nom : TimeControl2.PNG
Affichages : 443
Taille : 27,1 Ko

    Moins de 10 secondes pour 200000 lignes.

    Je sais bien qu'ici c'est un forum Python mais il est bon de rappeler que parfois cela ne fait pas trop de mal d'utiliser un autre langage. Pour des questions concernant le code VBA, le faire dans le forum Excel Macros & VBA de Developpez.
    Ami calmant, J.P

  12. #12
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 211
    Par défaut
    Hello,
    Citation Envoyé par pratick Voir le message
    en essayant de diminué les vitesse, je suis passé d'un chargement en 12 minutes de mon XLSX d'origine à 2 minutes actuellement avec un script VBSCRIPT associé au python
    pourquoi passes-tu par du csv alors que tu peux lire directement du xlsx dans pandas. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dfs = pd.read_excel(file_name, sheet_name=None)
    Ami calmant, J.P

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

Discussions similaires

  1. [MySQL-5.7] Contrôle de temps entre insertion
    Par _Agrid dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/02/2020, 17h10
  2. [AC-2010] Addition de contrôles dans un formulaire.
    Par chmouky dans le forum Access
    Réponses: 7
    Dernier message: 26/05/2016, 14h59
  3. Sicstus Prolog : contrôle du temps d'exécution
    Par mcc39 dans le forum Prolog
    Réponses: 1
    Dernier message: 17/05/2013, 18h06
  4. Contrôle de temps des développements
    Par tssi555 dans le forum Débats sur le développement - Le Best Of
    Réponses: 35
    Dernier message: 08/10/2012, 09h14
  5. Contrôle des temps de réponses réseau
    Par AAWOOPY56 dans le forum Solaris
    Réponses: 1
    Dernier message: 16/06/2011, 14h59

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