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

如何在DataFrame中创建新列,按规则重组姓名并生成递增序号?

Pandas生成指定格式姓名标识的实现方案

核心步骤说明

  1. 拆分姓名:将「名+姓」的组合列拆分为单独的名和姓列
  2. 生成基础标识:提取姓氏前5个字符(不足则取全部)转小写,拼接名字前2个字符转小写
  3. 添加递增序号:对重复的基础标识从01开始生成两位递增序号,最终拼接成完整标识

代码实现

import pandas as pd

# 示例DataFrame(替换为你的实际数据)
df = pd.DataFrame({
    'full_name': ['John Smith', 'Peter Pan', 'John Smith', 'Alice Johnson', 'Peter Pan']
})

# 1. 拆分名和姓(按第一个空格分割)
df[['first_name', 'last_name']] = df['full_name'].str.split(n=1, expand=True)

# 2. 生成基础标识部分
df['base_id'] = df['last_name'].str[:5].str.lower() + df['first_name'].str[:2].str.lower()

# 3. 生成两位递增序号并拼接最终标识
df['user_id'] = df['base_id'] + df.groupby('base_id').cumcount().add(1).apply(lambda x: f"{x:02d}")

# 可选:删除中间辅助列
df = df.drop(['first_name', 'last_name', 'base_id'], axis=1)

# 查看结果
print(df)

输出结果

full_name   user_id
0     John Smith  smithjo01
1      Peter Pan   panpe01
2     John Smith  smithjo02
3  Alice Johnson  johnso01
4      Peter Pan   panpe02

内容的提问来源于stack exchange,提问作者Thanos of Siberia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:15:36