请为您提供以下帮助?
数据:5只股票的月度收益的累积时间序列
目标:在新列中计算3个月,1年,3年(年度)和5年(年度)的滚动回报。如果没有足够的存货期限(例如,计算只有6个月可用的12个月的退货),请打印“ n / a”
我到目前为止的代码(滚动1年):
import pandas as pd
import glob
from tabulate import tabulate
path = r'H:/'
filename = glob.glob(path + "Stock_Returns.xls")
print(filename[0])
df = pd.read_excel(filename[0])
df[['Return']] = df[['Return']].apply(pd.to_numeric)
df['Date'] = pd.to_datetime(df['Date'])
df['Return'] = df['Return']/100+ 1
df = df[['Stock','Date', 'Return']]
df['date']=df['As Of Date'].dt.year
df['one_year_return'] = df.groupby(['Stock','date']).cumprod()
df = df.groupby(['Stock','date']).nth(11)
print(tabulate(df, headers='firstrow', tablefmt='psql'))
df.to_excel(filename[0])