2016-10-04 12 views
1

我使用sklearn的成對距離函數,它在計算一個巨大的矩陣時挽救了我的生命,但是我遇到的問題是我失去了我的指數。如何在運行Pairwise Distance功能後維護或恢復數據幀索引?

具體來說,我最初有一個巨大的數據框17000 x 300,我根據某些類的條件分解成4個不同的數據框。 4個獨立的數據幀保留了原始索引,但是當我在其中一個數據幀上運行成對距離函數後,它給了我一個帶有正確值的2d數組,但索引已從0重置。

如何保留或恢復原始指數

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

回答

3

您可以創建使用DataFrame constructor的匹配的索引取index參數數據幀:

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

此外,如果你想橫向串連到您現有的數據框,您可以使用

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

謝謝你,完美的工作! –

+0

不客氣。祝一切順利。 –

+0

@AmiTavory是否可以保留索引,如果你上升採樣數據。也就是說,原始數據將具有原始索引,而上採樣數據具有新索引 – Victor