0
我有一个函数来计算月收益给出的月度回报率:计算年度标准差,在熊猫
def monthlyreturns(df):
first = df.resample('M').first().to_period('M')
last = df.resample('M').last().to_period('M')
return ((last-first)/first) * 100
,所得到的DF从monthlyreturns(股票):
FOX FOXA MMM
Date
2012-01 5.4 3.2 -.08
2012-02 .07 1.2 -.62
...
2017-08 -.2 -4.2 2.3
我的问题是 - 我如何计算每年的标准差?我的预期产出将保持在相同的格式DF(在列的股票,以及日期为指标),但计算出每年的标准偏差,给出的月度回报率(所以应该有EA股票约7个值)
到目前为止,我曾尝试:
sd = pd.DataFrame()
x = -13
y = -1
for date in reversed(periods): #where periods is ea year
sd[date] = np.std(monthly_returns.iloc[x:y])
x -= 12
y -= 12
if x < -72:
break
这工作 - 但日期和列交换,并想知道是否有一个更干净的代码来做到这一点
当你将一个循环应用到一个熊猫物体时,在99%的情况下你做错了。 – DyZ
我知道那里有一个这样的班轮,我不知道index.year部分 - 谢谢你 –