Pandas: неуникальный мультииндексированный DataFrame для Panel
Я новичок в Pandas.Есть ли способ конвертировать неуникальный мультииндекс в Panel, сохраняя неуникальные данные?Кажется, что Panel устарела, но более старая библиотека нуждается в Panel, которую нам нужно было бы создать из мультииндексированного фрейма данных.
Пример кода:
> arrays=
[numpy.array(['a','a','b','b']),numpy.array(['one','one','one','two'])]
> df = pandas.DataFrame(numpy.random.randn(4,2),index=arrays)
> print df
> df
0 1
a one 1.167011 0.008832
one 0.253517 1.101717
b one -2.666648 1.327103
two 0.160127 -0.186646
>df.to_panel()
ValueError: Can't convert non-uniquely indexed DataFrame to Panel.
К сожалению, мы не можем контролировать уникальность мульти-индекс.Есть ли способ создать панель из неуникального мультииндекса, аналогично тому, как происходит конвертация с Panel -> Multi-index -> Panel, где панель имеет неуникальные метки major_axis (ниже образца).Или нам нужно перебрать значения многоиндексированного фрейма данных и построить 3-мерный массив с уникальными major_axis, minor_axis, items и передать их в конструктор pd.Panel?Любая помощь приветствуется ...
Панель -> Мультииндекс -> Панель
>minor_axis=['one','two']
>major_axis=['a','a','b']
>panel = pandas.Panel(numpy.random.randn(2,3,2), major_axis=major_axis,
minor_axis=minor_axis) # Panel is created with non-unique index labels
>panelFrame = panel.to_frame() # Panel to MI
>panelFrame.to_panel() # MI to Panel retains non-unique index.
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 2 (minor_axis)
Items axis: 0 to 1
Major_axis axis: a to b
Minor_axis axis: one to two