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]),…)
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]