首页 > 解决方案 > 从 m 个项目的列表和一个 mxm 相似性数组创建一个元组列表

问题描述

我有一个包含 3 个项目的列表。

Items_list = ['a','b','c']

sklearn cosinesimilarities 函数为“a”、“b”和“c”项的所有组合提供了 3 x 3 矩阵的输出,如下所示:

similarities =[[1, 0.5, 0.2],
               [0.5, 1, 0.6],
               [0.2, 0.6, 1]]

我想创建一个包含两列的 Pandas DataFrame,如下所示: 所需输出:

  Col1                          Col2
0    a  [(a, 1), (b, 0.5), (c, 0.2)]
1    b  [(a, 0.5), (b, 1), (c, 0.6)]
2    c  [(a, 0.2), (b, 0.6), (c, 1)]

标签: pythonlistdataframetuplessimilarity

解决方案


希望这就是你所需要的

import pandas as pd

item_list = ['a','b','c']

similarities =[[1, 0.5, 0.2],
               [0.5, 1, 0.6],
               [0.2, 0.6, 1]]

tuple_similarities = [list(zip(item_list, row)) for row in similarities]

df = pd.DataFrame({'Col1': item_list,
                   'Col2': tuple_similarities})

print(df)

输出:

  Col1                          Col2
0    a  [(a, 1), (b, 0.5), (c, 0.2)]
1    b  [(a, 0.5), (b, 1), (c, 0.6)]
2    c  [(a, 0.2), (b, 0.6), (c, 1)]

推荐阅读