您可以使用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() 如下为每个column 提供mean DataFrame,示例说明了如何仅选择B。
df.apply(np.mean, axis='major').loc['B']
Item1 0.025954
Item2 0.446931
Name: B, dtype: float64
改用 MultiIndex DataFrame 可能更简单,因为它似乎是更常见的用例,所以文档记录更好。