【发布时间】:2018-05-31 06:43:15
【问题描述】:
df = pd.DataFrame(np.random.rand(100, 2),
columns=pd.Index(['A', 'B'], name='bar'),
index=pd.date_range('20160101',
periods=100, freq='D', name='foo'))
corr = df.rolling(12).corr()
在旧版本中,这会返回一个面板,因此现有代码使用
corr[0,:,:]
返回第一个日期的 corr 矩阵。
但是,在新版本中,corr 是一个 multiIndex DataFrame,上面的代码失败了。如何以最小的变化实现相同的输出?
corr.iloc[0] # only returns first row
corr.iloc[0,:,:] # error
编辑:
所需的输出是获得与下面相同的返回,但不要使用带有值的.loc,而是使用类似.iloc[11](即对应于日期中第12个值的相关矩阵)
corr.loc['2016-01-12']
bar A B
foo bar
2016-01-12 A 1.000000 -0.115059
B -0.115059 1.000000
【问题讨论】: