如何在Tableau中使用集合操作筛选不同Phase的URL集合
如何用集合操作筛选不同阶段的URL集合
首先先明确你的原始数据集:
ID PHASE URL 1 1 url1 2 1 url2 3 1 url3 4 1 url4 5 2 url5 6 2 url3 7 2 url6
集合操作确实是处理这类“存在性对比”需求的最优解,因为集合本身就支持交集、差集、并集这些原生操作,步骤非常清晰:
第一步:提取两个阶段的URL集合
先把Phase1和Phase2的URL分别单独提取出来,转换成集合(集合会自动去重,不过你的数据里每个阶段内的URL没有重复,所以直接转就行):
- Phase1的URL集合:
{'url1', 'url2', 'url3', 'url4'} - Phase2的URL集合:
{'url3', 'url5', 'url6'}
第二步:执行对应的集合操作
1. 同时存在于Phase1和Phase2的URL(交集)
用集合的交集操作(符号&或者方法intersection()),结果就是两个阶段都有的URL:phase1_urls & phase2_urls → {'url3'}
也就是你说的:Phase1 ∩ Phase2 = url3
2. 仅存在于Phase1的URL(Phase1独有的URL)
用Phase1的集合减去两个阶段的交集(或者直接用差集操作-),得到只在Phase1出现的URL:phase1_urls - phase2_urls → {'url1', 'url2', 'url4'}
3. 仅存在于Phase2的URL(Phase2独有的URL)
同理,用Phase2的集合减去交集:phase2_urls - phase1_urls → {'url5', 'url6'}
4. 所有出现过的URL(并集)
用并集操作(符号|或者方法union()),把两个阶段的URL合并去重:phase1_urls | phase2_urls → {'url1', 'url2', 'url3', 'url4', 'url5', 'url6'}
也就是你提到的Phase1 ∪ Phase2的结果
用Python代码实现的完整示例
如果需要用代码自动化处理,这里有个简单的示例,直接可以运行:
# 模拟你的原始数据集(实际场景可以从CSV/数据库读取) data = [ (1, 1, 'url1'), (2, 1, 'url2'), (3, 1, 'url3'), (4, 1, 'url4'), (5, 2, 'url5'), (6, 2, 'url3'), (7, 2, 'url6'), ] # 提取两个阶段的URL集合 phase1_urls = {item[2] for item in data if item[1] == 1} phase2_urls = {item[2] for item in data if item[1] == 2} # 计算各个目标集合 intersection = phase1_urls & phase2_urls only_phase1 = phase1_urls - phase2_urls only_phase2 = phase2_urls - phase1_urls union = phase1_urls | phase2_urls # 打印结果 print("同时存在于Phase1和Phase2的URL:", intersection) print("仅存在于Phase1的URL:", only_phase1) print("仅存在于Phase2的URL:", only_phase2) print("所有出现过的URL:", union)
运行这段代码就能直接得到你需要的所有集合结果啦~
内容的提问来源于stack exchange,提问作者Ferda-Ozdemir-Sonmez
相关产品推荐
相关产品推荐

