2016-12-04 38 views
0

下图显示了一个多指标,我试图做同样的事情与我的数据:多指数或GROUPBY与相关数据帧的数据

mutiindex

为了证明什么,我试图做我把真实的数据放在一起这个简化的虚拟数据来重现它。

df = pd.DataFrame(np.random.randn(12, 3), columns=['A', 'B', 'C']) 
cols = list(df.columns) 
colsComb = list(combinations(cols, 2)) 
colsComb 
[('A', 'B'), ('A', 'C'), ('B', 'C')] 
#create new columns with pairs of 
newcols = [] 
for row in colsComb: 
    a,b = row 
    name = str(a+ '/' + b) 
    df[name] = pd.Series(np.nan, index=df.index,) 
    df[name] = abs(df[a] - df[b]) 
    newcols.append(name) 

所以,我A/B数据从AB衍生我想另辟蹊径,召回通过A/B相关指数/ GROUPBY AB或按的方式onetwo可以通过bar被称为相似在上面的第一个例子中。

我已经把这个例子放在一起,并希望可能有一些明显的方法来做到这一点,我错过了,因为我正在努力。

enter image description here

回答

1

我无法掌握究竟你想要的。如果你只是想添加一个多指数,如你的例子,你可以这样做

In [1]: newlevel = ['bar', 'bar', 'foo'] 
     df.columns = pd.MultiIndex.from_arrays([newlevel, df.columns]) 

In [2]: print df.T  
        0   1   2   3   4  ... 
     bar A -0.137985 -1.163524 0.276460 -0.417816 -0.353671 ... 
      B -0.365237 -1.204439 0.062629 -0.779051 -1.177906 ... 
     foo C 0.085098 -1.357175 0.825194 1.211555 0.027403 ...