gpt4 book ai didi

python - 从 Pandas 数据帧生成相似度矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:32 24 4
gpt4 key购买 nike

我有一个df

id    val1    val2    val3
100 aa bb cc
200 bb cc 0
300 aa cc 0
400 bb aa cc

从这里我必须生成一个 df,像这样:

     100  200  300  400                    
100 3 2 2 3
200 2 2 1 2
300 2 1 2 2
400 3 2 2 3

说明:id 100包含aa,bb,cc200包含bb,cc,0

有2个相似的值。

因此在我的最终矩阵中,应该插入 index-100column 200 的交集单元格,2

同样对于 id 200- 值是 bb,cc,0 而对于 id 300 - aa,cc,0

这里的相似度是1,因此在我的最终矩阵中200(index)-300(column)对应的单元格应插入1.

最佳答案

一些预处理。首先,set_indexid 并去掉 0,我们不需要它们。

df = df.set_index('id').replace('0', np.nan)

df
val1 val2 val3
id
100 aa bb cc
200 bb cc NaN
300 aa cc NaN
400 bb aa cc

现在,结合使用 pd.get_dummiesdf.dot 并获得相似度分数。

x = pd.get_dummies(df)
y = x.groupby(x.columns.str.split('_').str[1], axis=1).sum()
y.dot(y.T)

100 200 300 400
id
100 3 2 2 3
200 2 2 1 2
300 2 1 2 2
400 3 2 2 3

关于python - 从 Pandas 数据帧生成相似度矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com