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

如何将DataFrame的ID列字符串替换为有序caso/controle命名

处理DataFrame中ID列的批量重命名需求

实现思路

  1. 将提取到的唯一ID拆分为含"caso"和不含"caso"的两组
  2. 分别为两组ID生成带两位递增序号的标准化命名
  3. 构建原ID到新命名的映射字典,最后用字典替换原DataFrame的ID列

代码实现

import pandas as pd

# 假设你的DataFrame为df,已获取唯一ID列表
unique_ids = df['ID'].unique()

# 拆分两类ID
caso_group = [uid for uid in unique_ids if 'caso' in uid]
controle_group = [uid for uid in unique_ids if 'caso' not in uid]

# 构建原ID与新命名的映射
name_map = {}
# 处理含caso的ID,生成caso_01、caso_02...格式
for seq, uid in enumerate(caso_group, start=1):
    name_map[uid] = f"caso_{seq:02d}"
# 处理不含caso的ID,生成controle_01、controle_02...格式
for seq, uid in enumerate(controle_group, start=1):
    name_map[uid] = f"controle_{seq:02d}"

# 替换原DataFrame中的ID列
df['ID'] = df['ID'].map(name_map)

关键细节说明

  • enumerate(..., start=1) 让序号从1开始,匹配示例中的编号逻辑
  • f"caso_{seq:02d}" 通过格式化字符串保证序号为两位数字(不足补0)
  • map() 方法会自动处理原DataFrame中重复出现的ID,无需额外遍历行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:18:35