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

Pandas DataFrame基于部门名字段子串条件新增Region列(避免正则)

Pandas 新增Region列实现方案

直接用 Pandas 原生字符串方法结合 np.where 做分层条件判断即可,全程不需要正则,逻辑清晰性能也优于逐行遍历或者硬编码替换:

import pandas as pd
import numpy as np

# 你的原始DataFrame,此处仅为示例
df = pd.DataFrame({
    'Department_Name': ["ABC Europe - Team A", "HQ", "", "Asia Pacific - Operation", None, "North America - Sales"]
})

# 核心逻辑
# 先统一处理空值(含空字符串、NaN、全空格场景)
df['Region'] = np.where(
    df['Department_Name'].fillna('').str.strip().eq(''),
    'Others',
    np.where(
        df['Department_Name'].str.contains('-', na=False),
        # 拆分后取第一段并去除首尾冗余空格
        df['Department_Name'].str.split('-').str[0].str.strip(),
        df['Department_Name']
    )
)

逻辑说明

  • 第一步先统一处理空值:用fillna('')把NaN转为空字符串,再用str.strip()去掉首尾空格后判空,完全覆盖规则3的空值场景,鲁棒性更高
  • 非空值用str.contains('-', na=False)判断是否包含分隔符,na=False参数避免空值触发报错
  • 拆分用str.split('-')后取第一个元素,再做一次去空格处理,避免部门名前后的冗余空格影响结果,完全匹配规则1的要求
  • 不包含分隔符的场景直接返回原值,匹配规则2的要求

示例运行结果

Department_NameRegion
ABC Europe - Team AABC Europe
HQHQ
Others
Asia Pacific - OperationAsia Pacific
NoneOthers
North America - SalesNorth America

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:51:03