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

Pandas实现忽略行内元素顺序的组合频次统计

需求描述

统计数据表中同类记录的出现频次,判定同类的规则为:不考虑行内元素的排列顺序,只要元素组成完全一致就算同一类。

示例

输入数据

输入DataFrame结构如下:

df:
Col1
A;B;C
C;B;A
A;D
A;C;B
D;A
D;C

预期输出

分类统计后的结果如下:

df_result:
Col    freq
A;B;C   3
A;D     2
D;C     1

分类逻辑说明

  • A;B;C、C;B;A、A;C;B 三个值拆分后元素均为A、B、C,仅排列顺序不同,归为A;B;C类,统计频次为3
  • A;D、D;A 拆分后元素均为A、D,归为A;D类,统计频次为2
  • D;C 无其他元素组成相同的记录,单独为一类,统计频次为1
实现代码(pandas环境)

核心逻辑:对每行的字符串按分隔符拆分后,将元素做统一排序,再拼接成标准格式的字符串,以此为分组依据做频次统计即可。

import pandas as pd

# 1. 构造示例数据
df = pd.DataFrame({
    'Col1': ['A;B;C', 'C;B;A', 'A;D', 'A;C;B', 'D;A', 'D;C']
})

# 2. 生成统一标准的分类键:拆分→排序→拼接
df['std_key'] = df['Col1'].apply(lambda s: ';'.join(sorted(s.split(';'))))

# 3. 分组计数,整理成目标格式
df_result = df['std_key'].value_counts().reset_index()
df_result.columns = ['Col', 'freq']

运行上述代码后得到的df_result与预期输出完全一致。如果需要调整分类后的展示格式,只需要修改排序、拼接的规则即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:30:56