我有一個數據幀df
:爲一組兩列計算餘弦相似度通過在數據幀
AID VID FID APerc VPerc
1 A X 0.2 0.5
1 A Z 0.1 0.3
1 A Y 0.4 0.9
2 A X 0.2 0.3
2 A Z 0.9 0.1
1 B Z 0.1 0.2
1 B Y 0.8 0.3
1 B W 0.5 0.4
1 B X 0.6 0.3
我要計算的值APerc
和VPerc
所有對AID
和VID
的餘弦相似性。因此,對於上述結果應該是:
AID VID CosSim
1 A 0.997
2 A 0.514
1 B 0.925
我知道如何GROUPBY:df.groupby(['AID','VID'])
,我知道如何生成整個列餘弦相似:
from sklearn.metrics.pairwise import cosine_similarity
cosine_similarity(df['APerc'], df['VPerc'])
什麼是最好的和最快的方式來做到這一點,因爲我有一個非常大的文件。
但使用這些方法不返回數據幀。我的意思是把as_index = False不讓我使用AID和VID作爲列。我需要他們作爲列,我需要餘弦相似性也是一個名稱,我可以打電話的列。我怎樣才能做到這一點? – BKS
鏈'.rename('CosSim').setup_index()'後應該這樣做。 – Psidom