2017-02-10 52 views
0

我具有形式切片pandas.DataFrame的第二多指标

   "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文档的挂钩,但没有设法分割第二级。

这是列指数:

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不是在索引)

df.iloc[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) 

THX对于任何帮助

PS:版本:大熊猫-0.19,蟒蛇,3.4

+0

我想我可以轮询每个X系列,如果每个点都有相同数量的测量。但情况并非如此。有些斑点有49个测量值,有些只有47个(有些被丢弃)。因此,我想明确说明第二个指标,因为它代表了衡量的真实价值。 –

回答

0

技巧是指定轴...

df.loc(axis=1)[:,0] 

提供了每个点的第0个测量值。 因为我在二级索引上使用整数,所以我不确定这是否实际上在DataFrame中产生标签“0”或仅第0次测量,即标签不可知。

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

+0

为了获得第0次测量的平均值,首先需要进行转置:df.loc(axis = 1)[:,0] .T.mean() –