这是我到目前为止的内容-我已经建立了一个价格表(如图中所示),我想计算各个报价器的对数回报。 priceData = pd.read_excel(r'.. \ PriceData.xlsx',skiprows = range(1),
usecols = 'B:SN', index_col = 0)
priceData = priceData.drop(priceData.index[[0,1]])
priceData.index.names = ['Date']
priceData.index = priceData.index.map(pd.to_datetime)
priceData.sort_index()
# To adjust all time series data to start from 1990-01-25 to 2018-09-24
for column in priceData.columns:
if np.isnan(priceData[column].iloc[0]):
priceData = priceData.drop([column],axis=1, inplace=True)
stocks = list(table)
returns = table.apply(lambda x: np.log(x)-np.log(x.shift(1)))
* table是我的数据框名称。
我遇到的错误消息是:
“ TypeError :(“ /:不支持的操作数类型:'float'和>'datetime.datetime'“,'发生在索引LYB UN Equity')”
我尝试过:
returns = table.apply(lambda x: np.log(x)-np.log(x.shift(1)))
但是我遇到了一条新的错误消息:
(““浮动”对象没有属性“ log””,“出现在索引LYB UN Equity”)
请告知!
答案 0 :(得分:0)
我想出了一种更直观的方法。
# Calculate returns
returns = table.pct_change() # simple linear returns
log_rets = np.log(1+returns)
这将在计算同一数据框中的多个证券的对数收益时起作用。干杯!