使用列中的值对熊猫数据框进行多索引

时间:2019-10-11 08:43:25

标签: python pandas

我有一个看起来像这样的数据框:

column1   column2   column3   column4
P1        D1        T1        1.0
P1        D1        T2        2.0
P1        D2        T1        3.0
P1        D2        T2        4.0
P2        D1        T1        5.0
P2        D1        T2        6.0
P2        D2        T1        7.0
P2        D2        T2        8.0

我想用column2和column3中的值对列进行多索引。看起来应该像这样

column1   column4
          D1                  D2
          T1        T2        T1        T2
P1        1.0       2.0       3.0       4.0
P2        5.0       6.0       7.0       8.0

1 个答案:

答案 0 :(得分:1)

我相信您需要DataFrame.set_indexSeries.unstack

df = df.set_index(['column1','column2','column3'])['column4'].unstack([1,2])
print (df)
column2   D1        D2     
column3   T1   T2   T1   T2
column1                    
P1       1.0  2.0  3.0  4.0
P2       5.0  6.0  7.0  8.0

如果需要MultiIndexcolumn4的顶级,请删除column4并使用DataFrame.unstack

df = df.set_index(['column1','column2','column3']).unstack([1,2])
print (df)
        column4               
column2      D1        D2     
column3      T1   T2   T1   T2
column1                       
P1          1.0  2.0  3.0  4.0
P2          5.0  6.0  7.0  8.0