将多行转换为Pandas中的列

时间:2019-08-23 11:50:02

标签: pandas

我正在尝试将行转换为熊猫中的列,我的示例数据框看起来像

Scode   Pname   Town    State     Cycle    Sqty     Fqty
6000    Naro    Hyd       TS      Feb/Mar   10     20
6000    Naro    Vij       TS      Apr/May   10     20
6000    Naro    Blore     KR      Feb/Mar   100    200
6000    Naro    Cochin    KR      Apr/May   100    200

我认为它可以与取消堆叠的多个索引一起使用

df = df.set_index(['State', 'C&F', 'HQ','Sample Code','PName','Cycle']).unstack().T

我的样本输出

                        TS    TS        KR       KR
                        Hyd   Vij       Blore    Cochin
Scode   Pname   Cycle   Sqty  Fqty      Sqty    Fqty
6000    Naro    Feb/Mar 10     10        100        100
6000    Naro    Apr/May 20     20        200         200

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:1)

我相信您需要通过所有不是标识符变量的列创建MultiIndex,例如SqtyFqty列,然后通过MultiIndex Series创建stack并最后通过{{ 1}}:

unstack

答案 1 :(得分:0)

要将行转换为列,您可以简单地使用数据透视表。也可以根据需要更改值

         ` import pandas as pd
            pd.pivot_table(df,index=['Scode','Pname','Cycle','State','Town'],values= 
            ["Town","Sqty","Fqty"], columns=[ "State"])