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

如何检测并移除两列值的无序重复组合(支持大数据量)

原始数据表格

RowData AData B
1aaaabbbb
2aaaacccc
3aaaadddd
4bbbbaaaa
5ccccaaaa
6bbbbcccc

需求说明

需要检测无序组合重复:即Data A和Data B交换后视为同一组合(如Row1与Row4、Row2与Row5),最终保留唯一组合的行(Row1、Row2、Row3、Row6),且需支持5000行以上数据的批量处理。


批量检测去重方案

1. Excel/Google Sheets 操作(无代码方案)

  • 步骤1:生成统一标识键
    添加辅助列(如C列),输入公式对每行的Data A和Data B按字典序排序后拼接,确保无序组合生成相同的键:
    =CONCAT(SORT(A2:B2))
    
    下拉填充所有行后,Row1和Row4的辅助列值均为aaaabbbb,Row2和Row5均为aaaacccc。
  • 步骤2:删除重复项
    选中整个数据区域(含辅助列),点击「数据」→「删除重复值」,选择辅助列作为判断依据,确认后即可保留唯一组合行,最后可删除辅助列。

2. Python 处理(大数据量高效方案)

用pandas库快速处理万级以上数据:

import pandas as pd

# 读取数据(支持csv/excel格式)
df = pd.read_csv("your_data.csv")
# 若为Excel则用 df = pd.read_excel("your_data.xlsx")

# 生成排序后的组合键:对每行的Data A/B排序后拼接
df['unique_key'] = df[['Data A', 'Data B']].apply(lambda x: ''.join(sorted(x)), axis=1)

# 保留每个唯一键对应的第一行数据
df_unique = df.drop_duplicates(subset='unique_key', keep='first')

# 移除辅助列并保存结果
df_unique = df_unique.drop('unique_key', axis=1)
df_unique.to_csv("unique_result.csv", index=False)

3. SQL 数据库处理(数据存库时使用)

若数据在数据库中,可直接用SQL语句去重,保留每个无序组合的最早一行:

WITH sorted_pairs AS (
  SELECT
    *,
    ROW_NUMBER() OVER (
      PARTITION BY 
        LEAST("Data A", "Data B"), 
        GREATEST("Data A", "Data B")
      ORDER BY Row
    ) AS row_rank
  FROM your_table
)
SELECT Row, "Data A", "Data B"
FROM sorted_pairs
WHERE row_rank = 1;

最终去重结果表格

RowData AData B
1aaaabbbb
2aaaacccc
3aaaadddd
6bbbbcccc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:50:33