Reshape/pivot pandas 数据框

Reshape/pivot pandas dataframe

我有一个包含变量的数据框:id, 2001a, 2001b, 2002a, 2002b, 2003a, 2003b, etc.

我正在尝试找出一种方法来转换数据,因此变量是:id, year, a, b

16.2 文档提到了一些重塑和旋转,但这似乎更倾向于分层列。

有什么建议吗?

我正在考虑创建分层数据框,但不确定如何将原始变量名称中的 year 映射到创建的分层列

样本 df:

id 2001a 2001b 2002a 2002b 2003a etc.
1  242   235   5735  23    1521
2  124   168   135   1361  1
3  436   754   1     24    5124
etc.

这是一种创建分层列的方法。

df = pd.DataFrame({'2001a': [242,124,236], 
                   '2001b':[242,124,236],
                   '2002a': [242,124,236], 
                   '2002b': [242,124,236], 
                   '2003a': [242,124,236]})
df.columns = df.columns.str.split('(\d+)', expand=True)
df

  2001      2002      2003
     a    b    a    b    a
0  242  242  242  242  242
1  124  124  124  124  124
2  236  236  236  236  236