<p>将<code>SKU</code>和<code>Ids</code>设为索引,<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.stack.html" rel="nofollow noreferrer">^{<cd3>}</a>然后<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html" rel="nofollow noreferrer">^{<cd4>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rename.html" rel="nofollow noreferrer">^{<cd5>}</a>:</p>
<pre><code>df = df.set_index(['SKU','Ids'])\
.stack().reset_index()\
.rename(columns={'level_2':'wk',0:'value'})
</code></pre>
<p>或:</p>
<pre><code>df = df.set_index(['SKU','Ids'])\
.stack().reset_index(name='value')\
.rename(columns={'level_2':'wk'})
</code></pre>
<p>或者根据注释中的<a href="https://stackoverflow.com/a/53340984/8320861">^{<cd6>}</a>建议,使用<a href="https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.melt.html" rel="nofollow noreferrer">^{<cd7>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html" rel="nofollow noreferrer">^{<cd8>}</a>的另一种方法:</p>
<pre><code>df = df.melt(id_vars=['SKU','Ids'])\
.rename(columns={'variable':'wk'})\
.sort_values(['SKU','Ids'])
</code></pre>
<hr/>
<pre><code>print(df)
SKU Ids wk value
0 10 20 wk_1 1
1 10 20 wk_2 2
2 10 20 wk_3 3
3 10 20 wk_4 4
4 10 20 wk_5 5
5 10 20 wk_6 6
6 30 40 wk_1 6
7 30 40 wk_2 5
8 30 40 wk_3 4
9 30 40 wk_4 3
10 30 40 wk_5 2
11 30 40 wk_6 1
</code></pre>