<p>稍微修改一下@A5C1D2H2I1M1N2O1R2T1的答案,我发现我仍然可以保留多索引结构:</p>
<pre><code>idx = df[['Center_Details']].columns.values.tolist()
long = pd.melt(df, id_vars = idx)
# Renaming variable created by melt to a multiindex friendly name
long.rename(columns={'variable_0': ('Values', 'Qtr')}, inplace=True)
# Reshape to wide format, keeping Values, QTR as a hierarchical column
out = pd.pivot_table(long, index = idx + [('Values', 'Qtr')], columns = 'variable_1',
values = 'value', aggfunc = 'first')
# Creating tuples for new column names
out.columns = [('Values', col) for col in out.columns]
out = out.reset_index()
# Converting columns to multiindex
out.columns = pd.MultiIndex.from_tuples(out.columns.values)
print(out)
+ -+ -+ + -+ + + -+ -+
| | Center_Details | | | Values | | | |
+ -+ -+ + -+ + + -+ -+
| | State | District | Center | QTR | Credit | Deposit | Offices |
+ -+ -+ + -+ + + -+ -+
| 0 | JAMMU & KASHMIR | KUPWARA | Drug Mulla (CT) | 2017-18:Q1 | 600 | 500 | 4 |
+ -+ -+ + -+ + + -+ -+
| 1 | JAMMU & KASHMIR | KUPWARA | Drug Mulla (CT) | 2017-18:Q2 | 600 | 500 | 3 |
+ -+ -+ + -+ + + -+ -+
| 2 | JAMMU & KASHMIR | LEH LADAKH | Chuglamsar (CT) | 2017-18:Q1 | 600 | 500 | 4 |
+ -+ -+ + -+ + + -+ -+
| 3 | JAMMU & KASHMIR | LEH LADAKH | Chuglamsar (CT) | 2017-18:Q2 | 600 | 500 | 3 |
+ -+ -+ + -+ + + -+ -+
| 4 | PUNJAB | GURDASPUR | TIBRI | 2017-18:Q1 | 600 | 500 | 4 |
+ -+ -+ + -+ + + -+ -+
| 5 | PUNJAB | GURDASPUR | TIBRI | 2017-18:Q2 | 600 | 500 | 3 |
+ -+ -+ + -+ + + -+ -+
| 6 | PUNJAB | PATHANKOT | Mamun (CT) | 2017-18:Q1 | 600 | 500 | 4 |
+ -+ -+ + -+ + + -+ -+
| 7 | PUNJAB | PATHANKOT | Mamun (CT) | 2017-18:Q2 | 600 | 500 | 3 |
+ -+ -+ + -+ + + -+ -+
</code></pre>
<p>PS:很抱歉表格格式太难看了,我还是不知道如何在上面创建表格。在</p>