<p>在我的测试中,我使用了以下数据帧(使用拉丁字符
作为列名和索引):</p>
<pre><code> Volume Sale
YTD2017 YTD2018 YTD2019 YTD2017 YTD2018 YTD2019
A 212.0 220.0 226.16 3654.04 4163.87 4695.12
B 17.5 18.5 18.57 234.84 274.47 298.90
C 18.5 14.5 12.66 213.02 191.14 177.46
</code></pre>
<p>我的第一个观察是<code>df.Sale / df.Volume</code>单独<strong>起作用,
因此,让我们将结果保存在一个辅助数据帧(<em>df2</em>)中。
到目前为止,我们有:</p>
<pre><code> YTD2017 YTD2018 YTD2019
A 17.236038 18.926682 20.760170
B 13.419429 14.836216 16.095854
C 11.514595 13.182069 14.017378
</code></pre>
<p>此结果不能与原始的<em>df</em>合并,因为<em>df</em>具有
<strong>多索引</strong>作为列,而<em>df2</em>有一个“普通”索引。你知道吗</p>
<p>但是我们可以将缺少的索引级别添加到<em>df2</em>中的列中:</p>
<pre><code>df2.columns = pd.MultiIndex.from_product([['Price'], df2.columns])
</code></pre>
<p>现在<em>df2</em>在列上还包含一个<strong>多索引:</p>
<pre><code> Price
YTD2017 YTD2018 YTD2019
A 17.236038 18.926682 20.760170
B 13.419429 14.836216 16.095854
C 11.514595 13.182069 14.017378
</code></pre>
<p>所以现在加入这两个数据帧没有任何障碍:</p>
<pre><code>df = df.join(df2)
</code></pre>
<p>获取:</p>
<pre><code> Volume Sale Price
YTD2017 YTD2018 YTD2019 YTD2017 YTD2018 YTD2019 YTD2017 YTD2018 YTD2019
A 212.0 220.0 226.16 3654.04 4163.87 4695.12 17.236038 18.926682 20.760170
B 17.5 18.5 18.57 234.84 274.47 298.90 13.419429 14.836216 16.095854
C 18.5 14.5 12.66 213.02 191.14 177.46 11.514595 13.182069 14.017378
</code></pre>