切片索引错误

时间:2018-07-09 08:50:19

标签: python-3.x dataframe indexing slice

我有一个熊猫数据框,如下所示:

d = {'Date': [np.datetime64('2017-12-31','ns'), np.datetime64('2018-01-01','ns'), np.datetime64('2018-01-02','ns'), np.datetime64('2018-01-03','ns')], 
     'Prices': [10.55, 35.65, 12.34, 39.43]}
analytics = pd.DataFrame(data=d)
analytics['Date'] = pd.to_datetime(analytics['Date'], format='%Y-%m-%d')

第一列datetime64ns和另一列值,它可以追溯到多年,所以我没有写完整的内容。

我正在尝试制定一个公式来计算波动率,并在计算中考虑了营业日和节假日。我的代码是:

###days
ann = 260
Eyear = 2018
Emonth = 1
Eday = 3
#last day
last = dt.datetime(Eyear, Emonth, Eday)
#1y
dtvar1 = dt.datetime(Eyear-1, Emonth, Eday)
yr1 = dtvar1 - BDay(1) if (dtvar1.weekday() == 5 or dtvar1.weekday() == 6) else dtvar1
yr1_plus1 = yr1 + BDay(1)
yr1ct = len(analytics.set_index("Date")[yr1_plus1:last])

#overall
first = analytics.iloc[0]
first_plus1 = analytics.index[1]
ct = len(analytics)-1

def volatility_1_year(analytics=analytics):
    dfret =  analytics[first:last]/analytics[first:last].shift(1) - 1
    #1y vola
    v1y2 = dfret[yr1_plus1:last].std(axis=0, skipna=True, ddof=1) * np.sqrt(ann)
    return v1y2

Vol1 = volatility_1_year()
print(Vol1)

问题出在我不断得到这个错误,我无法解决。

  

TypeError:无法对类进行切片索引   带有这些索引器的“ pandas.core.indexes.numeric.Int64Index” [日期
  2007年1月2日00:00:00价格10.55名称:“ 0,dtype:对象”,类别为“ pandas.core.series.Series”

有人对此有任何暗示吗?我真的不明白我要去哪里。

非常感谢!

0 个答案:

没有答案