Python中基于关联相似度值合并异形列表构建DataFrame
Python实现指定结构DataFrame构建方案
核心逻辑
先把一维的相似度数值序列,按照行、列的对应顺序转换为18行7列的二维结构,再传入pandas的DataFrame构造函数,同时指定行索引和列名即可。
完整实现代码
首先安装依赖库(不想用numpy可以参考后面的无依赖写法):pip install pandas numpy
然后运行以下代码:
import pandas as pd import numpy as np # 1. 定义基础输入数据 # 行索引(列表1) row_labels = [ 'Limitation', 'Parameter', 'input', 'Feature', 'Dataset', 'Output', 'EvaluationMetric', 'Algorithm', 'Task', 'HyperParameter', 'Layer', 'Model', 'Operator', 'Function', 'OptimizationAlgorithm', 'ActivationFunction', 'LeakyReluFunction', 'LossFunction' ] # 列名(列表2) col_labels = ['Input', 'Dataset', 'Algorithm', 'Operator', 'Task', 'HyperParameter', 'Output'] # 两两相似度数值序列 similarity_values = [ 0.4,0.75,0.75,0.65,0.65,0.050000000000000044,0.25,0.25,0.5,0.6,0.75,0.7,0.75,1.0, 0.75,0.4,0.6,0.75,0.5,0.75,0.7,0.65,0.6,0.09999999999999998,0.25,0.30000000000000004, 0.44999999999999996,0.55,0.6,0.6,0.55,0.6,0.6,0.35,1.0,0.55,0.4,0.6,0.6,0.65,0.6,0.4, 0.25,0.25,0.44999999999999996,0.65,0.7,0.65,0.75,0.65,0.7,0.4,0.65,0.65,0.6,0.7,0.6, 1.0,0.65,0.25,0.25,0.30000000000000004,0.5,0.55,0.6,0.75,0.7,0.75,0.7,0.25,0.55,1.0, 0.35,0.8,0.75,0.65,0.6,0.0,0.15000000000000002,0.19999999999999996,0.44999999999999996, 0.35,0.75,0.4,0.44999999999999996,0.5,0.35,0.30000000000000004,0.4,0.35,1.0, 0.44999999999999996,0.35,0.6,0.30000000000000004,0.050000000000000044,0.15000000000000002, 0.25,0.30000000000000004,0.55,0.6,0.85,0.7,0.75,1.0,0.35,0.6,0.7,0.35,0.7,0.7,0.7,0.7, 0.09999999999999998,0.25,0.25,0.5 ] # 2. 转换一维数值为二维矩阵(逐行排列:每7个值对应一行) score_matrix = np.array(similarity_values).reshape(len(row_labels), len(col_labels)) # 3. 构建目标DataFrame df = pd.DataFrame(score_matrix, index=row_labels, columns=col_labels) # 可选:打印前5行验证结果 print(df.head())
注意事项
- 上述代码默认相似度序列是逐行排列:即前7个值对应第一行
Limitation与7个列的相似度,接下来7个值对应第二行Parameter与7个列的相似度,以此类推。如果你的数值是逐列排列的,在reshape后加.T做转置即可。 - 如果不想安装numpy,可以用列表切片替代numpy做维度转换,替换上述步骤2的代码即可:
# 无numpy依赖的二维矩阵生成方式 col_count = len(col_labels) score_matrix = [similarity_values[i*col_count : (i+1)*col_count] for i in range(len(row_labels))]
运行后得到的df就是目标结构:行标签为列表1的内容,列名为列表2的内容,单元格为对应相似度值。
内容的提问来源于stack exchange,提问作者Reta Diab
相关产品推荐
相关产品推荐

