Die Berechnung der Veränderung in Prozent zwischen zwei zahlen (Python)
Habe ich eine Liste der Preise, wo ich versuche zu berechnen, die Veränderung in Prozent von jeder Zahl. Ich berechnete die Unterschiede mit
prices = [30.4, 32.5, 31.7, 31.2, 32.7, 34.1, 35.8, 37.8, 36.3, 36.3, 35.6]
def f():
for i in range(len(prices)):
print(prices[i]-prices[i-1])
Gibt die Unterschiede wie
2.1
-0.8
-0.5
...
Weiß ich die prozentuale Veränderung wäre ((i-(i-1))/(i-1) *100, aber ich weiß nicht, wie zu übernehmen, die in das Skript. Jede Hilfe wäre sehr geschätzt werden.
- Sie wollen wahrscheinlich
range(1, len(prices))
- sonst ist die erste Sache, die es druckt, wird die Differenz zwischen dem letzten und ersten Elemente der Liste. - Sie haben die änderung Prozentsatz Gleichung falsch... denkt Man vielleicht an eine % Fehler Gleichung geht, wie abs(x-y)/x, wobei x den richtigen Wert in der Theorie, aber der Unterschied ist abs(x-y) / Durchschnitt x -, y -
- Du hast Recht, David. Ich habe die Palette, wie Sie vorgeschlagen und ergänzt die Letzte Zeile zu
print ((prices[i]-prices[i-1])/prices[i-1]*100)
- Es ist ein bisschen spät zu Fragen, aber wie könnte ich konvertieren, die Ausgabe von f() in eine Liste?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Edit:, Wenn Sie wollen, dass diese als eine Liste, Sie könnten dies tun:
Wenn Sie noch nicht ausgesetzt worden, um die pandas-Bibliothek in Python (http://pandas.pydata.org/), Sie sollten auf jeden Fall check it out.
Tun, das ist ganz einfach: