Вы можете использовать pd.Panel.apply
(see docs), как показано случайными данными выборки:
df1 = pd.DataFrame(np.random.randn(4, 2), columns=['A', 'B'])
df2 = pd.DataFrame(np.random.randn(4, 2), columns=['A', 'B'])
data = {'Item1': df1, 'Item2': df2}
df = pd.Panel(data)
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 2 (minor_axis)
Items axis: Item1 to Item2
Major_axis axis: 0 to 3
Minor_axis axis: A to B
, который, как DataFrame
, выглядит следующим образом:
Item1 Item2
major minor
0 A -0.572396 0.515488
B 0.796982 0.726253
1 A 0.345817 -0.330810
B -2.516973 1.833602
2 A -2.140583 -1.050717
B 1.302233 -1.391122
3 A -0.088435 -0.041199
B 0.521575 0.618990
Использование .apply()
ниже дает mean
для каждого column
по DataFrame
, образец показывает, как выбрать только B
.
df.apply(np.mean, axis='major').loc['B']
Item1 0.025954
Item2 0.446931
Name: B, dtype: float64
Использование MultiIndex
DataFrame
вместо может быть проще, потому что лучше документированы, как это, кажется, более распространенный способ использования.
Пожалуйста, покажите структуру данных панели. Является ли это списком кадров данных? Сложная, большая слава данных с панельными индикаторами? Я вижу хорошего кандидата для 'groupby()'. – Parfait