我有一个包含一些数据框的Panel数据。所有这些都有一个名为' N0'的列。我想要一个包含每个面板N0均值的数组。我设法用这个:
[np.mean(data.minor_xs('N0')[g]) for g in data]
但它看起来太麻烦了。是不是有更清洁的方式来提取N0柱,比如数据[' N0']?
答案 0 :(得分:1)
您可以使用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
$('.bxslider').bxSlider({
minSlides: 2,
maxSlides: 2,
slideWidth: 360,
slideMargin: 10
});
可能更简单,因为更好地记录,因为它似乎是更常见的用例。