2015-06-17 42 views
1

我試圖用MultiIndex重新索引Panel。最終的目標是能夠做到切片這樣的:重新索引帶有MultiIndex的pandas.panel

wp.loc[(1,slice(None)),:,:] #Access the panel fixing the first index of the multiIndex 

但每當我試圖重新索引,就像在這個例子中,我得到這個奇怪的行爲。

wp = pd.Panel(pd.randn(4, 5, 4), items=['Item_1_1', 'Item_1_2','Item_2_1','Item_2_2'],major_axis=['a','b','c','d','e'],minor_axis=['A', 'B', 'C', 'D']) 
a=[tuple([int(i) for i in item.split('_')[1:]]) for item in wp.items] 
swp=wp.reindex(items=x) 

但是,當我嘗試訪問我得到了面板的項目;

In [101]: swp[1,1] 
Out[101]: 
    A B C D 
a NaN NaN NaN NaN 
b NaN NaN NaN NaN 
c NaN NaN NaN NaN 
d NaN NaN NaN NaN 
e NaN NaN NaN NaN 

我在做什麼錯?

回答

1

您的新索引是一個元組列表,因此每個項目現在索引在(1,1),(1,2)等。爲了訪問該項目,我假設您嘗試使用swp[1,1]進行訪問簡單地索引swp[(1,1)](即panel[item_name])。

+0

我試過你的解決方案,但它不起作用。索引不是元組,而是MultiIndex。你可以嘗試在swp.items中執行'for i:print swp [i]',你會發現這是錯誤的。 – Pierpaolo