[英]How to calculate percentage properly
我有三个具有“城市”列的数据框。 所有这三个数据框都有一组不同的城市名称。
我想找到每个数据框的此列之间的总匹配百分比。
为此,我使用了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
这个记录对吗?
您可能想要这样:
percentage = ( len(set1.intersection(set2)) / len(set1.union(set2)) )*100
它为您提供set1
和set2
中公共元素的百分比。
这也称为Jaccard Index ,这是一组相似度的度量。
从纯粹的数学角度来看:我假设您要查找分别在set1和set2,set1和set3与set2和set3之间匹配的城市的百分比。
要计算此百分比,您需要找到匹配数和所比较的城市集的长度。
然后可以按如下方式计算百分比:
匹配百分比1和2 = [(1和2之间的匹配数)/(集合的长度)] * 100
对于代码方面:我同意Sparkofska。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.