我有一个价格清单,我试图计算每个数字的百分比变化。我用
计算了差异 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])
返回差异,如
2.1
-0.8
-0.5
...
我知道百分比的变化是((i-(i-1))/(i-1)* 100,但我不知道如何将其纳入脚本。任何帮助都将非常感谢
答案 0 :(得分:12)
如果你还没有接触到Python中的pandas库(http://pandas.pydata.org/),你一定要查看它。
这样做很简单:
import pandas as pd
prices = [30.4, 32.5, 31.7, 31.2, 32.7, 34.1, 35.8, 37.8, 36.3, 36.3, 35.6]
price_series = pd.Series(prices)
price_series.pct_change()
答案 1 :(得分:9)
试试这个:
prices = [30.4, 32.5, 31.7, 31.2, 32.7, 34.1, 35.8, 37.8, 36.3, 36.3, 35.6]
for a, b in zip(prices[::1], prices[1::1]):
print 100 * (b - a) / a
修改:如果您希望将其作为列表,则可以执行以下操作:
print [100 * (b - a) / a for a, b in zip(prices[::1], prices[1::1])]
答案 2 :(得分:0)
虽然绝对不是最优雅的方式,但是如果您想定义一个函数,它将看起来像这样:
def pctc(Q):
output = [0]
for i in range(len(Q)):
if i > 0:
increase = Q[i]-Q[i-1]
percentage = (increase/Q[i]) * 100
output.append(percentage)
return(output)
也许有更好的方法可以执行该功能,但是至少很清楚。 :))