我有一个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
Run Code Online (Sandbox Code Playgroud)
我试图将所有(前两个)列除以最后一列.我的尝试是
weights = results.pop('FINLWT21')
results/weights
Run Code Online (Sandbox Code Playgroud)
但我明白了
ValueError: cannot join with no level specified and no overlapping names
Run Code Online (Sandbox Code Playgroud)
我没有得到:索引中有重叠的名称:
weights.head()
year quarter
13 1 1271559.398
2 481169.672
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来进行这种划分?我需要重置索引吗?
And*_*den 17
您必须指定除法的轴(使用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
Run Code Online (Sandbox Code Playgroud)
默认值为axis = 1,结果列和权重的索引名称不重叠,因此出现错误消息.