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

基于姓名前两位字符(不区分顺序)生成Block_ID列的技术需求

需求说明

现有包含First_Name和Last_Name字段的数据集:

First_Name                Last_Name
Neetu                     Puri
Puri                      Neetu
Sheena                    Arora
Reena                     Arora
Arora                     Sheena

需要新增Block_ID列,规则为:若两条记录的First_Name前两位字符与Last_Name前两位字符的组合(不区分前后顺序)一致,则归为同一Block。预期输出如下:

First_Name                Last_Name        Block_ID
Neetu                     Puri              1
Puri                      Neetu             1
Sheena                    Arora             2
Reena                     Arora             3
Arora                     Sheena            2

方案一:Python Pandas实现

核心思路是生成统一的分组标识键,再基于键分配ID:

  • 提取每个名字字段的前两位字符(若字段长度不足2,可根据实际需求补全或特殊处理)
  • 对每条记录的两个前两位字符串排序后拼接,生成不区分顺序的标识键
  • 将标识键转为分类类型,再生成对应的连续ID

代码示例:

import pandas as pd

# 构造示例数据集(实际场景可替换为读取文件/数据库)
df = pd.DataFrame({
    'First_Name': ['Neetu', 'Puri', 'Sheena', 'Reena', 'Arora'],
    'Last_Name': ['Puri', 'Neetu', 'Arora', 'Arora', 'Sheena']
})

# 生成统一分组键
df['group_key'] = df.apply(
    lambda row: '-'.join(sorted([row['First_Name'][:2], row['Last_Name'][:2]])),
    axis=1
)

# 分配Block_ID(从1开始编号)
df['Block_ID'] = df['group_key'].astype('category').cat.codes + 1

# 输出结果(移除临时键列)
result = df[['First_Name', 'Last_Name', 'Block_ID']]
print(result.to_string(index=False))

方案二:SQL实现(以MySQL为例)

利用字符串函数生成统一分组键,再通过窗口函数分配ID:

  • 用SUBSTRING提取名字前两位,LEAST和GREATEST确保两个字符串顺序统一
  • 用DENSE_RANK()窗口函数为每个唯一分组键生成连续的Block_ID

代码示例:

WITH temp_group AS (
    SELECT 
        First_Name,
        Last_Name,
        -- 生成不区分顺序的分组键
        CONCAT(
            LEAST(SUBSTRING(First_Name, 1, 2), SUBSTRING(Last_Name, 1, 2)),
            '-',
            GREATEST(SUBSTRING(First_Name, 1, 2), SUBSTRING(Last_Name, 1, 2))
        ) AS group_key
    FROM your_table_name -- 替换为实际表名
)
SELECT 
    First_Name,
    Last_Name,
    DENSE_RANK() OVER(ORDER BY group_key) AS Block_ID
FROM temp_group;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:28:40