【发布时间】:2014-05-28 12:05:46
【问题描述】:
带有 MultiIndex Pandas 面板的切片函数
我从Pandas 和MultiIndex 创建了一个Panel 构造(参见代码)。如果没有MultiIndex,我可以使用简单的命令将Panel 分割成DataFrame:
PanelData.major_xs('A')
PanelData.minor_xs('zTwo')
如果我对MultiIndex Panel 进行切片,结果将是Panel。我该怎么做才能得到DataFrame 回来(切片3D Panel => 2D DataFrame)?为什么 3D 切片的结果 Panel 也是 Panel ?如果可能,结果应该是从“2010-01-01”到“2010-01-03”所有区域(“zOne”-“zFour”)的DataFrame。
import pandas as pd
ListLetter = ['A', 'B', 'C', 'D']
ListCode = [2, 1, 1, 0]
ListZone = ['zOne', 'zTwo', 'zThree', 'zFour']
ListRegion = ['USA', 'CH', 'NZ', 'CH']
index = pd.MultiIndex.from_arrays([ListLetter, ListCode], names=['letter', 'code'])
columns = pd.MultiIndex.from_arrays([ListZone, ListRegion], names=['zone', 'region'])
PanelData = pd.Panel({'2010-01-01': pd.DataFrame(index=index, columns=columns)})
PanelData['2010-01-02'] = pd.DataFrame(index=index, columns=columns)
PanelData['2010-01-03'] = pd.DataFrame(index=index, columns=columns)
PanelData
面板数据:
<class 'pandas.core.panel.Panel'>
Dimensions: 3 (items) x 4 (major_axis) x 4 (minor_axis)
Items axis: 2010-01-01 to 2010-01-03
Major_axis axis: (A, 2) to (D, 0)
Minor_axis axis: (zOne, USA) to (zFour, CH)
注意:我使用的是 Python v.2.7.6 和 IPython v.1.2.1。
【问题讨论】:
标签: python pandas panel slice multi-index