You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:29:46