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

如何使用str.contains、str.find与df.loc从DataFrame列提取指定字符

Pandas 槽位号提取需求实现方案

实现逻辑说明

  • 分支1:id列包含(Slot字符串时,提取匹配位置开始的7个字符,删除首字符(得到槽位号
  • 分支2:id列包含PR GRP字符串时,取grp列第6位开始的连续6个字符作为槽位号

完整实现代码

import pandas as pd

# 构造示例数据
data = {
    "id": ["Alpha-old-1_MOD (Slot01)", "Alpha-old-1_PR GRP1", "Beta-new-1_PR GRP2", "Beta-old-1_MOD (Slot03)"],
    "grp": ["-", "MOD (Slot07);MOD (Slot08)", "MOD (Slot13);MOD (Slot14)", "-"]
}
df = pd.DataFrame(data)

# 批量计算Output列
# 提取(Slot开头的7个字符,去除首字符(
slot_extract = df["id"].str.extract(r"(\(Slot.{3})", expand=False).str[1:]
# 提取grp列第6位(Python索引从0开始,对应索引为5)开始的6个字符
grp_extract = df["grp"].str[5:11]
# 根据id的匹配条件赋值
df["Output"] = pd.NA
df.loc[df["id"].str.contains("\(Slot"), "Output"] = slot_extract
df.loc[df["id"].str.contains("PR GRP"), "Output"] = grp_extract

print(df)

输出结果验证

运行代码后得到的Output列和示例要求完全一致:

idgrpOutput
Alpha-old-1_MOD (Slot01)-Slot01
Alpha-old-1_PR GRP1MOD (Slot07);MOD (Slot08)Slot07
Beta-new-1_PR GRP2MOD (Slot13);MOD (Slot14)Slot13
Beta-old-1_MOD (Slot03)-Slot03

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:36:03