且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-11-21 22:19:16

使用 stack 重置索引 :

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

然后 插入 列,按 factorize填充的位置 值:

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