Python 执行sklearn余弦相似性时,如何保留索引和列名?
在执行sklearn.metrics.pairwise.cosine_相似性时,我得到的结果是索引0、1、2。。。和列名0、1、2 如何将结果转换为原始列名和索引名 用于计算的数据帧:Python 执行sklearn余弦相似性时,如何保留索引和列名?,python,scikit-learn,cosine-similarity,Python,Scikit Learn,Cosine Similarity,在执行sklearn.metrics.pairwise.cosine_相似性时,我得到的结果是索引0、1、2。。。和列名0、1、2 如何将结果转换为原始列名和索引名 用于计算的数据帧: user_id | age | education | income | length_residence ----------------------------------------------------------------------- NI
user_id | age | education | income | length_residence
-----------------------------------------------------------------------
NIODB6S3 | 43.769912 | 1.537634 | 58.754647 | 7.232344
BOAWG65L | 43.769912 | 1.537634 | 58.754647 | 7.232344
3667B8P0 | 20.000000 | 1.000000 | 40.000000 | 4.000000
VS53SKY5 | 35.000000 | 1.537634 | 75.000000 | 14.000000
我运行的代码:
pd.DataFrame(cosine_similarity(df))
预期:
user_id | NIODB6S3 | BOAWG65L | 3667B8P0
user_id |
----------------------------------------------
NIODB6S3 | 1.000000 | 0.000084 | 0.996848
BOAWG65L | 0.000084 | 1.000000 | 0.000342
3667B8P0 | 0.996848 | 0.000342 | 1.000000
得到:
我不确定默认数字索引是否传达了df中“user_id”的正确原始顺序
我可以用原始索引替换结果中的索引和列
result.index = df.index
result.columns = df.index
它们的顺序完全相同用
我可以用原始索引替换结果中的索引和列
result.index = df.index
result.columns = df.index
它们的顺序完全相同
result.index = df.index
result.columns = df.index