Pandas 数据帧';s第二个多重索引

Pandas 数据帧';s第二个多重索引,pandas,slice,multi-index,Pandas,Slice,Multi Index,我有一个表格的数据框 "a" "b" "c" #first level index 0, 1, 2 0, 1, 2 0, 1, 2 #second level index index 0 1,2,3 6,7,8 5,3,4 1 2,3,4 7,5,4 9,2,5 2

我有一个表格的数据框

              "a"          "b"          "c"        #first level index
            0, 1, 2       0, 1, 2      0, 1, 2     #second level index
index
0          1,2,3         6,7,8       5,3,4
1          2,3,4         7,5,4       9,2,5
2          3,4,5         4,5,6       0,4,5
...
表示进行测量的点(a、b或c)以及在此点上进行的测量结果(0,1,2)

我想做以下工作:

  • 在样本中选取一个切片(假设每个点的第一个测量值为0)
  • 第i次测量的平均值(平均值(“a”[0],“b”[0],“c”[0]),平均值(“a”[1],“b”[1],“c”[1]),…)
我试图掌握pandas多索引文档的诀窍,但未能将其切分到第二级

这是列索引:

MultiIndex(levels=[['a', 'b', 'c', ... , 'y'], [0, 1, 2, ... , 49]],
       labels=[[0, 0, 0, ... , 0, 1, 1, 1, ... 1, ..., 49, 49, 49, ... 49]])
指数呢

Float64Index([204.477752686, 204.484664917, 204.491577148,  ..., 868.723022461], dtype='float64', name='wavelength', length=43274)
使用

df[:][0]
产生一个键错误(0不在索引中)

返回水平切片

0    "a":(1,2,3), "b":(6,7,8), "c":(5,3,4)
但是我想要

"a":(1,2,3), "b":(6,7,4), "c":(5,9,0)
谢谢你的帮助


PS:version:pandas-0.19,python-3.4

技巧是指定轴

df.loc(axis=1)[:,0]
提供每个点的第0个测量值。 因为我在第二级索引上使用整数,所以我不确定这是否真的会产生标签“0”,或者仅仅是数据帧中的第0个度量,标签不可知


但对于我的用例来说,这实际上已经足够了。

如果每个点的测量值相同,我想我可以对一系列的第x个点进行投票。但事实并非如此。有些地点有49次测量,有些只有47次(有些已经被挖走)。因此,我想明确地处理第二个索引,因为它表示度量的真实值。要获得第0个度量的平均值,需要先转置:df.loc(axis=1)[,0].T.mean()
df.loc(axis=1)[:,0]