我有
形式的数据框results
TOTEXPPQ TOTEXPCQ FINLWT21
year quarter
13 1 9.183392e+09 5.459961e+09 1271559.398
2 2.907887e+09 1.834126e+09 481169.672
我试图将所有(前两个)列除以最后一列。我的尝试是
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
是否有更好的方法来进行这种划分?我需要来重置索引吗?
答案 0 :(得分:14)
您必须指定除法的轴(使用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
默认值为axis = 1,结果列和权重'索引名称不重叠,因此出现错误消息。