使用python将多个列转换为新列
我有一张这样的桌子:使用python将多个列转换为新列,python,pandas,Python,Pandas,我有一张这样的桌子: id phase type status activity system list_a list_b list_c 1 str x acc pre p 0 0 0 1 str x acc pre p 1 3 2 1 pip x
id phase type status activity system list_a list_b list_c
1 str x acc pre p 0 0 0
1 str x acc pre p 1 3 2
1 pip x in prog static q 2 4 1
1 pip x in prog static q 1 3 5
id phase type status activity system list_type value
1 str x acc pre p a 0
1 str x acc pre p b 0
1 str x acc pre p c 0
1 str x acc pre p a 1
1 str x acc pre p b 3
1 str x acc pre p c 2
1 pip x in prog static q a 2
1 pip x in prog static q b 4
1 pip x in prog static q c 1
1 pip x in prog static q a 1
1 pip x in prog static q b 3
1 pip x in prog static q c 5
我希望list_a、list_b和list_c位于新的列中,这是list_类型,所以每一行将分解为3行。所需的输出如下所示:
id phase type status activity system list_a list_b list_c
1 str x acc pre p 0 0 0
1 str x acc pre p 1 3 2
1 pip x in prog static q 2 4 1
1 pip x in prog static q 1 3 5
id phase type status activity system list_type value
1 str x acc pre p a 0
1 str x acc pre p b 0
1 str x acc pre p c 0
1 str x acc pre p a 1
1 str x acc pre p b 3
1 str x acc pre p c 2
1 pip x in prog static q a 2
1 pip x in prog static q b 4
1 pip x in prog static q c 1
1 pip x in prog static q a 1
1 pip x in prog static q b 3
1 pip x in prog static q c 5
我试过这个:
pd.melt(df, id_vars = ['id', 'phase', 'type', 'status', 'activity, 'system'], value_vars = ['list_a', 'list_b', 'list_c'])
脚本没有给我所需的输出,列表列没有移动到新列。它只给了我一张清单,那就是清单a
如何在python中修复此问题
谢谢你让我工作顺利,也许有必要分配到新专栏:
df = pd.melt(df,
id_vars = ['id', 'phase', 'type', 'status', 'activity', 'system'],
value_vars = ['list_a', 'list_b', 'list_c'], var_name='list_type')
print (df)
id phase type status activity system list_type value
0 1 str x acc pre p list_a 0
1 1 str x acc pre p list_a 1
2 1 pip x in prog static q list_a 2
3 1 pip x in pprog static q list_a 1
4 1 str x acc pre p list_b 0
5 1 str x acc pre p list_b 3
6 1 pip x in prog static q list_b 4
7 1 pip x in pprog static q list_b 3
8 1 str x acc pre p list_c 0
9 1 str x acc pre p list_c 2
10 1 pip x in prog static q list_c 1
11 1 pip x in pprog static q list_c 5