<p>让我们从创建源数据帧开始:</p>
<pre><code>df = pd.DataFrame(data=[
[ 'Item', 'FY20', 'FY21', 'FY22' ],
[ 'Case', 'High', 'Low', 'Base' ],
[ 'Multiple', 1.2, 2.3, 3.4 ],
[ 'Cash', 1.1, 1.4, 1.2 ]])
</code></pre>
<p>结果是:</p>
<pre><code> 0 1 2 3
0 Item FY20 FY21 FY22
1 Case High Low Base
2 Multiple 1.2 2.3 3.4
3 Cash 1.1 1.4 1.2
</code></pre>
<p>那么我们必须:</p>
<ul>
<li><strong>转置</strong>此数据帧</li>
<li>将第一行转换为<strong>列名</strong></li>
<li>更改第一列名称:</li>
</ul>
<p>为此,请运行:</p>
<pre><code>df2 = df.transpose()
df2.columns = df2.iloc[0].tolist()
df2.drop(index=0, inplace=True)
df2.rename(columns={'Item': 'Date'})
</code></pre>
<p>结果是:</p>
<pre><code> Date Case Multiple Cash
1 FY20 High 1.2 1.1
2 FY21 Low 2.3 1.4
3 FY22 Base 3.4 1.2
</code></pre>
<p>要获得结果,请运行:</p>
<pre><code>df2.melt(id_vars=['Date', 'Case'], value_vars=['Cash'],
var_name='Name', value_name='Value')
</code></pre>
<p>您将收到:</p>
<pre><code> Date Case Name Value
0 FY20 High Cash 1.1
1 FY21 Low Cash 1.4
2 FY22 Base Cash 1.2
</code></pre>
<p>或者结果应该包括多个<em>柱的熔化?
为此,请删除<em>value\u vars=['Cash']</em>。
这种方式将包括<strong>所有剩余的<strong>列(除
包含在id变量中。你知道吗</p>