我有三个具有“城市”列的数据框。这三个数据框都有一组不同的城市名称。
我想找到每个数据框此列之间匹配总数的百分比。
为此,我使用了set方法并获得了三个数组
set1 = set(df1['City'])
set2 = set(df2['City'])
set3 = set(df3['City'])
但是我应该如何找到百分比? 我使用了这些功能,但是我不确定我是否做得正确
(len(set1) - len(set2))/len(set1)*100
(len(set1) - len(set3))/len(set1)*100
(len(set2) - len(set3))/len(set2)*100
此记录正确吗?
答案 0 :(得分:1)
您可能想要这样:
percentage = ( len(set1.intersection(set2)) / len(set1.union(set2)) )*100
为您提供set1
和set2
中常见元素的百分比。
这也称为Jaccard Index,是对集合相似度的度量。
答案 1 :(得分:0)
从纯粹的数学角度来看: 我假设您要查找分别位于set1和set2,set1和set3和set2和set3之间的城市匹配百分比。
要计算此百分比,您需要找到匹配的数量和所比较的城市集的长度。
然后可以按如下方式计算百分比:
匹配百分比1和2 = [(1和2之间的匹配数)/(集合的长度)] * 100
在代码方面:我同意Sparkofska。