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