将相关矩阵转换为大熊猫中的3列数据框?

时间:2018-11-25 15:55:34

标签: python pandas dataframe matrix correlation

我有一个这样的相关矩阵

    a     b   c
  a 1    0.5  0.3
  b 0.5   1   0.7
  c 0.3  0.7  1

我想将其转换为数据列,其中的列是这样的:

Letter1   letter2   correlation
   a        a           1
   a        b           0.5
   a        c           0.3
   b        a           0.5
   b        b            1      
   .        .            .
   .        .            .      

是否有熊猫命令允许我执行此操作?预先感谢

接下来,我可以像这样为Letter1中的字母分配一个值:

 Value1 Letter1  Value2 letter2   correlation
  1        a       1      a           1
  1        a       2      b           0.5
  1        a       3      c           0.3
  2        b       1      a           0.5
  2        b       2      b            1      
  .        .       .      .            .
  .        .       .      .            .   

1 个答案:

答案 0 :(得分:1)

stackreset_index一起使用:

df1 = df.stack().reset_index()
df1.columns = ['Letter1','Letter2','correlation']
print (df1)
  Letter1 Letter2  correlation
0       a       a          1.0
1       a       b          0.5
2       a       c          0.3
3       b       a          0.5
4       b       b          1.0
5       b       c          0.7
6       c       a          0.3
7       c       b          0.7
8       c       c          1.0

然后在insert列中按factorize ed值填充的位置:

df1.insert(0, 'Value1', pd.factorize(df1['Letter1'])[0] + 1)
df1.insert(2, 'Value2', pd.factorize(df1['Letter2'])[0] + 1)

print (df1)
   Value1 Letter1  Value2 Letter2  correlation
0       1       a       1       a          1.0
1       1       a       2       b          0.5
2       1       a       3       c          0.3
3       2       b       1       a          0.5
4       2       b       2       b          1.0
5       2       b       3       c          0.7
6       3       c       1       a          0.3
7       3       c       2       b          0.7
8       3       c       3       c          1.0