Python 从m项列表和m x m相似性数组创建元组列表

Python 从m项列表和m x m相似性数组创建元组列表,python,list,dataframe,tuples,similarity,Python,List,Dataframe,Tuples,Similarity,我有三个项目的清单 Items_list = ['a','b','c'] sklearn Cosinessilarity函数为项目“a”、“b”和“c”的所有组合提供3 x 3矩阵的输出,如下所示: similarities =[[1, 0.5, 0.2], [0.5, 1, 0.6], [0.2, 0.6, 1]] 我想创建一个包含两列的熊猫数据框,如下所示: 所需输出: Col1

我有三个项目的清单

Items_list = ['a','b','c']
sklearn Cosinessilarity函数为项目“a”、“b”和“c”的所有组合提供3 x 3矩阵的输出,如下所示:

similarities =[[1, 0.5, 0.2],
               [0.5, 1, 0.6],
               [0.2, 0.6, 1]]
我想创建一个包含两列的熊猫数据框,如下所示: 所需输出:

  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)]

希望这就是你需要的

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)]

谢谢,谢尔盖。我想要col1中的一个数组和col2中所有3个元组的列表。因此,数据帧将有3行-分别代表a、b、c和各自的相似性。第一行第二列应该是一个数组[('a',1),('b',0.5),('c',0.2)]。