重塑多列的熊猫数据框

时间:2019-04-29 09:41:07

标签: pandas

我正在尝试转换以下熊猫df

Error   Fore    time    loc qty           con   FA
2960    32863   2086    CFA Ahmedabad   29903   1   90
2960    32863   2087    CFA Ahmedabad   29903   1   90
8090    71453   2086    CFA Bangalore   79543   2   90
8090    71453   2087    CFA Bangalore   79543   2   90    

loc              var      2086    2087
CFA Ahmedabad   qty    29903    29903
CFA Ahmedabad   Fore    32863     32863
CFA Ahmedabad   Error   2960      2960
CFA Ahmedabad   con      1       1
CFA Ahmedabad   FA       90      90

我尝试使用熔解/堆叠,但似乎没有任何作用

df = pd.melt(df, id_vars='loc', value_vars=var, value_name='time')

此代码无法及时获取列,您将不胜感激吗?

1 个答案:

答案 0 :(得分:1)

据我了解,您可以使用melt() + pivot_table()

m=df.melt(['time','loc']).pivot_table(index=['loc','variable'],columns='time')
print(m)

time                     2086   2087
loc           variable              
CFA Ahmedabad Error      2960   2960
              FA           90     90
              Fore      32863  32863
              con           1      1
              qty       29903  29903
CFA Bangalore Error      8090   8090
              FA           90     90
              Fore      71453  71453
              con           2      2
              qty       79543  79543