熊猫多指标:由一列

问题描述:

除以所有列我具有形式熊猫多指标:由一列

    TOTEXPPQ  TOTEXPCQ  FINLWT21 
year quarter           
13 1  9.183392e+09 5.459961e+09 1271559.398 
    2  2.907887e+09 1.834126e+09 481169.672 

的数据帧results和我试图通过最后一个来划分所有(前两个)列。我的尝试是

weights = results.pop('FINLWT21') 
results/weights 

,但我得到

ValueError: cannot join with no level specified and no overlapping names 

哪个我不明白:有索引重叠名称:

weights.head() 
year quarter 
13 1   1271559.398 
     2   481169.672 

也许有更好的方式来做到这个部门?我是否需要来重置索引?

你必须指定轴线为除(与div法):

In [11]: results.div(weights, axis=0) 
Out[11]: 
       TOTEXPPQ  TOTEXPCQ 
year quarter 
13 1  7222.149445 4293.909517 
    2  6043.371329 3811.807158 

默认为轴线= 1,并将结果和权重索引名不重叠,因此错误消息。

+0

我刚刚得到'ValueError:传递值的形状是(1,8),索引暗示(4,8)'。你如何将它映射到所有列? – josh 2016-08-16 13:53:57

+1

@josh我怀疑你想使用大小(8,)而不是(1,8)的东西? – 2016-08-16 18:01:45