Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将多个列转换为新列_Python_Pandas - Fatal编程技术网

使用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