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

如何使用Python Pandas按similarity分组并添加cat标签列?

解决方案

针对百万行级别的数据集,优先选择效率高的矢量化操作,这里可以通过将不可哈希的列表转换为可哈希的元组,再利用Pandas内置的分组编号工具实现需求:

方法一:使用pd.factorize(推荐,速度最快)

import pandas as pd

# 假设你的DataFrame名为df
df['cat'] = pd.factorize(df['similarity'].apply(tuple))[0] + 1
  • 步骤说明:
    1. df['similarity'].apply(tuple):将列中的列表转换为元组(元组是可哈希类型,能被factorize识别)
    2. pd.factorize():为每个唯一的元组分配一个从0开始的整数标识
    3. 最后+1是为了让分组编号从1开始,和预期输出一致

方法二:使用groupby.ngroup

df['cat'] = df.groupby(df['similarity'].apply(tuple)).ngroup() + 1
  • 这个方法通过分组后直接生成组编号,逻辑更直观,性能略低于factorize但同样能轻松处理百万行数据

验证输出

运行以上代码后,你的DataFrame会生成符合预期的cat列:

Questions  cnt similarity  cat
0       ABC    1  [1, 2, 3]    1
1       abc    2  [1, 2, 3]    1
2       cba    3  [2, 3, 1]    2
3      abcd    4  [4, 5, 6]    3
4      dcsa    5  [2, 3, 1]    2
5      adcd    6  [4, 5, 6]    3
6      abcd    7  [1, 2, 3]    1
7       cba    8  [7, 8, 9]    4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:25:16