重塑/转动pandas数据帧

时间:2015-09-15 20:18:33

标签: python-2.7 pandas pivot reshape

我有一个包含变量的数据框: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.

1 个答案:

答案 0 :(得分:1)

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

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