由於pandas access axis by user-defined name給出的答案是一個古老的大熊貓版本,並且不提供完整的功能,這是它如何工作的:
from pandas.core.panelnd import create_nd_panel_factory
from pandas.core.panel import Panel
Panel4D = create_nd_panel_factory(
klass_name='Panel4D',
orders=['axis1', 'axis2', 'axis3', 'axis4'],
slices={'labels': 'labels',
'axis2': 'items',
'axis3': 'major_axis',
'axis4': 'minor_axis'},
slicer=Panel,
stat_axis=2,
)
def panel4d_init(self, data=None, axis1=None, axis2=None, axis3=None,
axis4=None, copy=False, dtype=None):
self._init_data(data=data, axis1=axis1, axis2=axis2,
axis3=axis3, axis4=axis4,
copy=copy, dtype=dtype)
Panel4D.__init__ = panel4d_init
這只是一個part of the Pandas source code,但稍作修改。
然後你得到
>>> Panel4D(np.random.rand(4,4,4,4))
Out[1]:
<class 'pandas.core.panelnd.Panel4D'>
Dimensions: 4 (axis1) x 4 (axis2) x 4 (axis3) x 4 (axis4)
Axis1 axis: 0 to 3
Axis2 axis: 0 to 3
Axis3 axis: 0 to 3
Axis4 axis: 0 to 3
,並違背了pandas access axis by user-defined name給出了答案,中Panel4D
一個實例,然後是全功能的行爲就像中pandas.Panel4D
一個實例。例如,你現在可以做Panel4D(np.empty((1,1,1,1)))[0]
而不拋出異常。
當你創建一個面板相反,它是非常具有描述性的。您想添加如下內容:'項目軸 - 以下是不同DataFrames的名稱:None'?對不起,但你試圖達到的是不明確的。 –
@Colonel Beauvel:對不起,我沒有明白你的意思。 – HeinzKurt
這是我的觀點......編輯標籤或添加一些東西......但很好添加輸出! –