我想在1950年到1952年期间获得第1周到第3周的销售。我可以通过使用以下代码来实现这一目标
idx = pd.IndexSlice
df.loc[:,idx[:,1950:1952,'Week1':'Week3']]
但是当我试图通过iloc做到这一点时,我得到的索引器错误太多了。我正在使用此代码:
df.iloc[:,idx[:,:4,:4]]
为什么iloc失败但是为loc工作?
下面是我的数据框的列值。
df.columns
MultiIndex(levels=[['Sale'], [1950, 1951, 1952, 1953], ['Week1', 'Week2', 'Week3', 'Week4']],
labels=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3], [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]],
names=[None, 'Year', 'Week'])