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

如何在Pandas DataFrame列中按单词'at'精准拆分文本?

解决Pandas中精准拆分Job列的问题

嘿,这个拆分问题我之前处理类似数据时也踩过坑!咱们来拆解下问题,然后给出靠谱的解决方案~

先分析你遇到的两个问题

  • 尝试1用df.Job.str.split('at',1):这个写法是直接匹配字符串里所有的'at',不管它是不是独立的单词,所以会误拆像"Operating"这种单词内部的'at',完全不符合需求。
  • 尝试2用df.Job.str.split(' at ',1):结果全是None,大概率是你的原始数据里,"at"前后的空白字符不是恰好一个空格——可能是多个空格、制表符,甚至有的是大写的"At"/"AT",导致精确匹配' at '完全找不到匹配项。

精准拆分的解决方案:用正则表达式匹配独立的"at"

我们需要匹配作为独立分隔符的"at":前后有任意数量的空白字符,并且不区分大小写,同时只拆分一次(避免公司名称里意外出现"at"的情况)。

直接上代码:

import pandas as pd
import re

# 模拟你的数据(包含多种空格、大小写情况)
df = pd.DataFrame({
    'Job': [
        "Operation Manager at Barclays",
        "Chief Operating Officer at Llyods",
        "Senior Analyst  at  HSBC",  # 两个空格
        "Marketing Lead At Morgan Stanley",  # 大写At
        "Sales Director   at   Goldman Sachs"  # 多个空格
    ]
})

# 正则拆分:拆分成职位和公司列
df[['Job_Title', 'Company_Location']] = df['Job'].str.split(
    r'\s+at\s+',  # \s+匹配1个或多个空白字符(空格、制表符都算)
    n=1,  # 只拆分第一次出现的匹配项
    expand=True,  # 直接拆分成DataFrame的两列
    flags=re.IGNORECASE  # 忽略大小写,匹配at/At/AT等
)

# 查看结果
print(df)

运行后你会看到所有情况都被正确拆分,不会误拆单词内部的"at",同时兼容各种空白字符和大小写的场景。

补充说明

  • \s+:比固定的空格更灵活,能处理数据里的各种空白格式问题;
  • n=1:确保只拆分第一个符合条件的"at",避免后续内容被误拆;
  • flags=re.IGNORECASE:覆盖数据里可能存在的大小写不一致情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:06:12