2016-12-02 3 views
0

i in Python ausführen, um eine Funktion definiert, sagen, wie viel Zeit eine Funktion nehmen

def func1(id): 
    .... 
    logic 
    dataframe2.to_sql(query) 
    .... 

die einige Operationen ausgeführt und das Ergebnis in der Datenbank

und ich habe eine Tabelle in Pandas Datenrahmen die hat ID-Spalte drin, und etwa 1000 Zeilen mit eindeutigen IDs

ich werde diese Funktion mit .apply Funktion aufrufen.

df['id'].apply(func1) 

, die eine ID zu einer Zeit nehmen und tun Operationen und speichern sie in der Datenbank, und gleiche wird für alle ID in meinem Datenrahmen geschehen.

Gibt es eine Möglichkeit zu berechnen, wie viel Gesamtzeit meine Funktion dauerte, um für alle IDs in df auszuführen?

ich dachte, vielleicht verwenden time Paket und tun smthing damit. aber ich bin ein Anfänger.

import time 
start_time = time.time() 
main() 
print("--- %s seconds ---" % (time.time() - start_time)) 

Gibt es eine Möglichkeit, dies zu tun?

+0

@EdChum tatsächlich! Warum stimmst du nicht zu schließen? Ich habe es gerade getan. –

+0

@ Jean-FrançoisFabre Ich lief aus engen Stimmen, sonst würde ich hämmern – EdChum

+0

Entschuldigung habe nicht daran gedacht. Ich arbeite meinen Weg zum Python Gold-Abzeichen, aber der Pfad ist lang :) –

Antwort

0

Sie können auch den Kontextmanager verwenden, um es zu überprüfen. Es könnte etwas Zeit sparen, wenn Sie es wiederverwenden möchten.

>>> class TimeMyFunc(object): 
...  def __enter__(self): 
...   self.begin = time.time() 
...  def __exit__(self,*args): 
...   elapsed = time.time() - self.begin 
...   print elapsed 
...   
>>> with TimeMyFunc(): 
...  time.sleep(1) 
...  
1.0 
Verwandte Themen