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

使用Python计算列间共同值数量及多列交集统计

Python实现列间共同值与全列交集统计

首先是待处理的表格数据:

ABC
A 1B 1A 2
B 1C 2B 1
C 1D 1
D1

实现代码

以下代码会先提取每列的有效数据(过滤空值),再计算任意两列的共同唯一值数量,以及所有列的交集唯一值数量:

# 定义表格数据,空值用空字符串表示
table_data = [
    ["A 1", "B 1", "A 2"],
    ["B 1", "C 2", "B 1"],
    ["C 1", "", "D 1"],
    ["D1", "", ""]
]

# 提取每列的有效数据(过滤空值)并转为集合(自动去重)
col_names = ["A", "B", "C"]
column_sets = []
for idx in range(len(col_names)):
    valid_values = [row[idx] for row in table_data if row[idx].strip()]
    column_sets.append(set(valid_values))

# 计算任意两列的共同值数量
print("=== 两两列共同唯一值数量 ===")
for i in range(len(col_names)):
    for j in range(i + 1, len(col_names)):
        common_num = len(column_sets[i] & column_sets[j])
        print(f"{col_names[i]} & {col_names[j]}: {common_num}")

# 计算所有列的交集值数量
print("\n=== 全列交集唯一值数量 ===")
if len(column_sets) >= 2:
    total_intersection = column_sets[0]
    for s in column_sets[1:]:
        total_intersection.intersection_update(s)
    print(f"所有列共同值数量: {len(total_intersection)}")
else:
    print("仅单列,无需计算交集")

运行结果

=== 两两列共同唯一值数量 ===
A & B: 1
A & C: 1
B & C: 1

=== 全列交集唯一值数量 ===
所有列共同值数量: 1

说明

  • 代码中用集合处理是因为默认统计唯一值的交集/共同数量,如果需要统计包含重复出现的次数,可以把集合换成列表,用sum(1 for val in col1 if val in col2)这类逻辑统计匹配次数。
  • 空值会被自动过滤,不参与统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:45:34