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

如何用Python识别Excel列中值的多个超集与子集并导出结果

从Excel的letter列识别子集与超集并导出结果

需求说明

现有Excel数据(结构如下),需要识别letter列中的子集与超集关系,并将子集-超集对应关系、去重后的超集列表分别导出为两个独立的Excel文件:

原始数据

idletter
1A, B, D, E, F
2B, C
3B
4D, B
5B, D, A
6X, Y, Z
7X, Y
8E, D
7G
8G

规则与预期输出

  • 子集判断规则:若集合A的所有元素都包含在集合B中,则A是B的子集(包括自身)
  • 预期输出1(子集-超集关系表):按超集分组,先列出超集行,再列出其所有子集行
  • 预期输出2(超集列表):去重后的所有最大集合(无其他集合能完全包含它)

实现代码(Python + Pandas)

import pandas as pd

# 读取原始Excel文件,替换为你的文件路径
df = pd.read_excel("原始数据.xlsx")

# 预处理:将letter列转换为集合,方便子集/超集判断
df['letter_set'] = df['letter'].apply(lambda x: set([s.strip() for s in x.split(',')]))

# 识别所有超集:无其他集合能完全包含当前集合,且去重相同letter
supersets = []
seen_letters = set()
for idx, row in df.iterrows():
    current_set = row['letter_set']
    current_letter = row['letter']
    is_superset = True
    # 检查是否存在其他集合包含当前集合
    for other_set in df['letter_set']:
        if current_set != other_set and other_set.issuperset(current_set):
            is_superset = False
            break
    if is_superset and current_letter not in seen_letters:
        supersets.append(row)
        seen_letters.add(current_letter)

# 生成超集列表DataFrame
superset_df = pd.DataFrame(supersets)[['id', 'letter']]

# 生成子集-超集关系表
relation_rows = []
for sup in supersets:
    sup_set = sup['letter_set']
    # 先添加超集本身
    relation_rows.append({'id': sup['id'], 'letter': sup['letter']})
    # 添加所有属于该超集的子集(排除当前超集行)
    for idx, row in df.iterrows():
        if row['letter_set'].issubset(sup_set) and row.name != sup.name:
            relation_rows.append({'id': row['id'], 'letter': row['letter']})

relation_df = pd.DataFrame(relation_rows)

# 导出到Excel文件
relation_df.to_excel("子集-超集关系表.xlsx", index=False)
superset_df.to_excel("超集列表.xlsx", index=False)

print("文件导出完成!")

代码说明

  1. 数据预处理:将letter列的字符串按逗号分割并转换为集合,利用集合的issubset和issuperset方法快速判断子集/超集关系
  2. 超集识别:遍历每一行,检查是否存在其他集合完全包含当前集合,不存在则判定为超集,同时去重相同的letter值
  3. 关系表生成:对每个超集,先添加超集行,再添加所有属于该超集的子集行,保证结构符合预期
  4. 导出文件:将两个结果分别导出为Excel,不保留索引列

内容的提问来源于stack exchange,提问作者abcabc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:33:28