如何在 运行 成对距离函数后维护或恢复 Dataframe 索引?

How to maintain or recover Dataframe indexing after running Pairwise Distance function?

我正在使用 sklearn 的成对距离函数,它在计算一个巨大的矩阵时救了我的命,但我遇到的问题是我丢失了我的索引。

具体来说,我最初有一个 17000 x 300 的巨大数据帧,我根据一些 class 条件将其分解为 4 个不同的数据帧。 4 个单独的数据帧保留原始索引,但在我 运行 这些数据帧之一上的成对距离函数后,它返回一个具有正确值的二维数组,但索引已从 0 向上重置。

如何保留或恢复原始索引

distance1 = pair.pairwise_distances(df1, metric='euclidean')

您可以使用带有 index 参数的 DataFrame constructor 创建具有匹配索引的 DataFrame:

pd.DataFrame(distance1, index=df1.index)

此外,如果您想将它水平连接到您现有的 DataFrame,您可以使用

pd.concat((df1, pd.DataFrame(distance1, index=df1.index)), axis=1)