Laufzeit von Dataframe Aufruf
Verfasst: Mittwoch 18. Dezember 2019, 13:45
Hey Leute ich habe ein Programm geschrieben und der großteil der Laufzeit wird in einer Zeile verbracht:
ich habe mal ein ausführbaren Beispielcode geschrieben in dem alles Andere weggelassen wurde und nur das nötigste steht:
die output Zuweisung mit Label[t] wird gemacht da durch das sortieren die Reihenfolge der Produkte nicht mehr übereinstimmt. (ist hier im Beispiel nicht der Fall)
ich habe das auch schonmal mit iterrows() aufgebaut das war aber nicht nennenswert schneller.
In meiner Anwendung bin ich im Bereich von 100.000 Iterationen und 20 Produkten sodass die Laufzeit bei knapp 115 Sekunden landet.
Hat jemand eine Idee wie ich diese Zuweisung schneller/effizienter machen kann ?
ich habe mal ein ausführbaren Beispielcode geschrieben in dem alles Andere weggelassen wurde und nur das nötigste steht:
Code: Alles auswählen
import pandas as pd
labels= ["Apfel", "Banane", "Kartoffel", "Bier"]
size_1 =10000
size_2 = 4
output= pd.DataFrame(0,index=range(size_1),columns=labels)
liste= pd.DataFrame(20,index=labels,columns=["Menge", "Preis"])
for i in range(size_1):
#im orginal werden in jeder äußeren iteration neue Megen und Preise für jedes Produkt berechnet
#dann den Produkten im input Dataframe zugewiesen
#dann wird das input Dataframe nach aufsteigenden Preisen sortiert
for t in range (size_2):
#dann hier schrittweise verrechnet wonach in der nächsten Zeile das Ergebnis des Berechnugsschritts in den output geschrieben werden soll
output.loc[i,labels[t]]=liste.iloc[t,0] #<----------------------- es geht um diese Zeile, sie ist für 80% meiner Laufzeit verantwortlich
ich habe das auch schonmal mit iterrows() aufgebaut das war aber nicht nennenswert schneller.
In meiner Anwendung bin ich im Bereich von 100.000 Iterationen und 20 Produkten sodass die Laufzeit bei knapp 115 Sekunden landet.
Hat jemand eine Idee wie ich diese Zuweisung schneller/effizienter machen kann ?