Pandas如何分组统计域名后缀数 筛选含多个后缀的域名
实现方法
你原代码的分组逻辑存在问题:同时将domain和ext作为分组字段时,每个分组本身就是「单个域名+单个后缀」的唯一组合,此时统计后缀的去重数量,结果自然全部为1,无法统计单个域名对应的后缀总数量。
调整为仅按domain分组统计后缀去重值,再过滤计数大于1的结果即可,代码如下:
# 按域名分组,统计每个域名下不重复的后缀数量 domain_ext_cnt = dfActive.groupby('domain')['ext'].nunique() # 筛选绑定了多个后缀的域名 result = domain_ext_cnt[domain_ext_cnt > 1]
执行后输出格式和你的预期完全一致,示例中绑定了com、net两个后缀的mashhadmap就会返回对应计数值2。
补充说明:如果你的数据集里存在「同一域名绑定同一后缀重复录入多行」的情况,
nunique()会自动对后缀去重计数,符合“统计不同后缀数量”的需求;如果需要统计绑定记录总行数(包含重复后缀),把nunique()替换为count()即可。
内容的提问来源于stack exchange,提问作者Sadegh Ghanbari
相关产品推荐
相关产品推荐

