python - Python - 如何将矩阵(由熊猫制成)转换为列表?
问题描述
我已经创建了 jaccard 相似度(请参阅这篇文章->如何从 pandas 数据帧计算 jaccard 相似度)
Unnamed A B C D
Unnamed 1 0.05 0.05 0.05 0.05
A 0.05 1 0.99 0.99 0.99
B 0.05 0.99 1 0.99 0.99
C 0.05 0.99 0.99 1 0.99
D 0.05 0.99 0.99 0.99 1
上面显示的矩阵也指的是参考帖子。
我的问题是我想知道如何将此矩阵转换为对或列表?因为我将使用列表或配对形式的数据来创建网络
我希望看到结果为
([unnamed, unnamed], 1)
([unnamed, A], 0.05)
([unnamed, B], 0.05)
([unnamed, C], 0.05)
([unnamed, D], 0.05
([A, unnamed], 0.05)
([A,A], 1)
([A,B], 0.99)
([A,C], 0.99)
([A,D], 0.99)
.
.
.
([D,Unnamed], 0.05)
([D,A], 0.99)
([D,B], 0.99)
([D,C], 0.99)
([D,D], 1)
谢谢你先进
解决方案
利用
In [91]: df.stack().to_dict()
Out[91]:
{('Unnamed', 'Unnamed'): 1.0,
('Unnamed', 'A'): 0.05,
('Unnamed', 'B'): 0.05,
('Unnamed', 'C'): 0.05,
('Unnamed', 'D'): 0.05,
('A', 'Unnamed'): 0.05,
('A', 'A'): 1.0,
('A', 'B'): 0.99,
('A', 'C'): 0.99,
('A', 'D'): 0.99,
('B', 'Unnamed'): 0.05,
('B', 'A'): 0.99,
('B', 'B'): 1.0,
('B', 'C'): 0.99,
('B', 'D'): 0.99,
('C', 'Unnamed'): 0.05,
('C', 'A'): 0.99,
('C', 'B'): 0.99,
('C', 'C'): 1.0,
('C', 'D'): 0.99,
('D', 'Unnamed'): 0.05,
('D', 'A'): 0.99,
('D', 'B'): 0.99,
('D', 'C'): 0.99,
('D', 'D'): 1.0}
或者,
In [98]: [(list(i), v) for i, v in df.stack().iteritems()]
Out[98]:
[(['Unnamed', 'Unnamed'], 1.0),
(['Unnamed', 'A'], 0.05),
(['Unnamed', 'B'], 0.05),
(['Unnamed', 'C'], 0.05),
(['Unnamed', 'D'], 0.05),
(['A', 'Unnamed'], 0.05),
(['A', 'A'], 1.0),
(['A', 'B'], 0.99),
(['A', 'C'], 0.99),
(['A', 'D'], 0.99),
(['B', 'Unnamed'], 0.05),
(['B', 'A'], 0.99),
(['B', 'B'], 1.0),
(['B', 'C'], 0.99),
(['B', 'D'], 0.99),
(['C', 'Unnamed'], 0.05),
(['C', 'A'], 0.99),
(['C', 'B'], 0.99),
(['C', 'C'], 1.0),
(['C', 'D'], 0.99),
(['D', 'Unnamed'], 0.05),
(['D', 'A'], 0.99),
(['D', 'B'], 0.99),
(['D', 'C'], 0.99),
(['D', 'D'], 1.0)]
推荐阅读
- visual-studio-code - 无法开始调试。命令“-Enviroment-cd”的意外 GDB 输出
- algorithm - 允许连续买卖时买卖股票的最佳时机
- mysql - 在 MySQL 中使用 ADDTIME() 函数
- swiftui - SwiftUI - NavigationLink 返回上一个视图
- excel - POI 无法保存到同一目录
- javascript - Keycloak Node.js 适配器在公司代理后面不起作用
- php - 由于 yii2 中的 if 语句导致解析错误
- azure-active-directory - 如何在使用 AzureAD 首次登录期间保存用户配置文件信息
- javascript - 如何DM所有服务器成员不和谐(js)
- javascript - 如何修复 CSRF 不匹配?