我认为这不是你的数据帧的最佳形状我认为像“字母”、“数字”、“acc”、“rt”之类的列(给它们起更有意义的名称)会更容易旋转。不管怎样,按照你目前的安排:>>> d
a1_acc a1_rt a2_acc a2_rt a3_acc a3_rt b_acc b_rt
0 2 780 2 830 2 690 2 950
1 1 630 2 750 0 0 2 890
2 2 710 2 810 1 740 1 820
首先,我们对.ix进行切片,得到_acc列,并将它们与2列进行比较:
^{pr2}$
然后我们将其应用于_rt列的一部分:>>> d.ix[:, 1:6:2][d.ix[:,0:6:2] == 2]
a1_rt a2_rt a3_rt
0 780 830 690
1 NaN 750 NaN
2 710 810 NaN
压平这个:>>> v = d.ix[:, 1:6:2][d.ix[:,0:6:2] == 2].unstack()
>>> v
a1_rt 0 780
1 NaN
2 710
a2_rt 0 830
1 750
2 810
a3_rt 0 690
1 NaN
2 NaN
现在我们可以取平均值并查看标准差(可能有一个内置函数来执行此操作,但我懒得查找),在需要的地方自动忽略NaN值:>>> v.mean()
761.66666666666663
>