如何计算两列之间的重叠率并绘制透视表以绘制热图(Python)?

2024-06-24 13:51:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个专栏,像

data= {'country':['China', 'China', 'France', 'Italy', 'France'], 'domain': ['abc.com', 'def.com', 'abc.com', 'fga.com', 'exo.com']}
df=pd.DataFrame(data)

如何计算重叠率(按国家分组并计算每个国家的域数)?预计将生成一个数据透视表来绘制热图,以便我们可以看到每个国家之间的重叠

在本例中,中国和法国之间的重叠有1个重叠域,即abc.com,两国之间的总宇宙集为3(abc.com、def.com和exo.com)。因此,两国之间的重叠率为1/3。要求计算所有国家的所有重叠率

cn= ['abc.com', 'def.com']
fr= ['abc.com', 'def.com', 'exo.com']
setA = set(cn)
setB = set(fr)

overlap = setA & setB
universe = setA | setB
result = float(len(overlap)) / len(universe)

有数千个域名和大约15个国家。因此,使用一些我不擅长的for循环更有效

多谢各位


Tags: comdatadef国家frcnabcset