Diese Frage steht in engem Zusammenhang mit meiner früheren Frage: here
Sorry, dass ich wieder fragen muss!Python Leistungsprobleme beim Klassifizieren von Spaltenwerten
Der folgende Code läuft und liefert die richtigen Ergebnisse, aber es ist wieder irgendwie langsam (4 Minuten für 80K Zeilen). Ich habe Probleme, die Serie Klasse von Pandas für konkrete Werte zu verwenden. Kann jemand empfehlen, wie ich diese Spalten stattdessen klassifizieren kann?
konnte nicht relevante Informationen in der Dokumentation finden:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html
Lauf Code:
# p_test_SOLL_test_D10
for x in range (0,len(tableContent[6])):
var = tableContent[6].loc[x, ('p_test_LAENGE')]
if float(tableContent[6].loc[x, ('p_test_LAENGE')])>=100.0:
tableContent[6].loc[x, ('p_test_LAENGE')]='yes'
elif (float(tableContent[6].loc[x, ('p_test_LAENGE')]) <30.0 and float(tableContent[6].loc[x, ('p_test_LAENGE')]) >= 10):
tableContent[6].loc[x, ('p_test_LAENGE')]='yes2'
elif (float(tableContent[6].loc[x, ('p_test_LAENGE')]) <10.0 and float(tableContent[6].loc[x, ('p_test_LAENGE')]) >= 5):
tableContent[6].loc[x, ('p_test_LAENGE')]='yes3'
else:
tableContent[6].loc[x, ('p_test_LAENGE')]='no'
print (tableContent[6]['p_test_LAENGE'])
Serie Versuchen:
if tableContent[6]['p_test_LAENGE'].astype(float) >=100.0:
tableContent[6]['p_test_LAENGE']='yes'
elif (tableContent[6]['p_test_LAENGE'].astype(float) <30.0 and tableContent[6]['p_test_LAENGE'].astype(float) >= 10):
tableContent[6]['p_test_LAENGE']='yes1'
elif (tableContent[6]['p_test_LAENGE'].astype(float) <10.0 and tableContent[6]['p_test_LAENGE'].astype(float) >= 5):
tableContent[6]['p_test_LAENGE']='yes2'
else:
tableContent[6]['p_test_LAENGE']='no'
print (tableContent[6]['p_test_LAENGE'])
Es gibt viel mehr erfahrene Leute mit Pandas (wahrscheinlich in dieser Frage suchen jetzt) . Also werde ich nicht einmal versuchen, Ihnen einen kanonischen Ansatz zu geben. Der Hinweis in Ihrer vorherigen Frage erwähnt jedoch "Vektorisierung" und "nimm die Schleife". Wenn Sie 'for' Loops verwenden, laufen sie grob in Python-Zeit (rechnerisch) und Sie können sich genauso gut nicht mit' numpy' oder 'pandas' beschäftigen und einfach nur mit vanilla python arbeiten. Es erfordert eine Verschiebung des Denkens, und ein paar Tutorials könnten Ihnen hier gut passen, bevor Sie fortfahren. – roganjosh