Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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中,如何将3级行转换为分隔列?_Python_Transpose - Fatal编程技术网

在python中,如何将3级行转换为分隔列?

在python中,如何将3级行转换为分隔列?,python,transpose,Python,Transpose,我有一个表,其中一列有3个级别,我想将每个级别转换为3个独立的列 它只有3个级别,但第三个级别是多种多样的(不是经常有2个值,它可以有更多的值,或者它也可能只有2个级别) 第一列是tag,它只存在于一行中,我希望在对表进行转置后,字符串也存在于另一行中 如果列只有两个级别,则detail列将填充与desc列相同的值 预期的表格如下所示: tag type desc detail progress setting ea 10-T Mineral

我有一个表,其中一列有3个级别,我想将每个级别转换为3个独立的列

它只有3个级别,但第三个级别是多种多样的(不是经常有2个值,它可以有更多的值,或者它也可能只有2个级别)

第一列是
tag
,它只存在于一行中,我希望在对表进行转置后,字符串也存在于另一行中

如果列只有两个级别,则
detail
列将填充与
desc
列相同的值

预期的表格如下所示:

tag      type        desc     detail      progress setting ea
10-T   Mineral       bottom   Girder 1         1
10-T   Mineral       bottom   Girder 2         1
10-T   Mineral       up       Shell 1          2
10-T   Mineral       up       Shell 2          3
40-T   Fresh         Roof     Wind 1           2
40-T   Fresh         Roof     Wind 2           5,5
40-T   Fresh         Up       Up               6

我应该如何使用
df.transpose
来获取预期的表?

没有直接的命令会给出您要查找的结果,因为相关任务编号在进度列中以逗号分隔的列表形式给出。您必须首先去掉层次索引,然后循环遍历所有行,并在progress列中复制具有多个数字的任何行

tag      type        desc     detail      progress setting ea
10-T   Mineral       bottom   Girder 1         1
10-T   Mineral       bottom   Girder 2         1
10-T   Mineral       up       Shell 1          2
10-T   Mineral       up       Shell 2          3
40-T   Fresh         Roof     Wind 1           2
40-T   Fresh         Roof     Wind 2           5,5
40-T   Fresh         Up       Up               6