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

如何用Pandas提取连字符前后以指定子串结尾的特定文本?

嘿,作为Pandas新手,处理这种文本提取确实需要点小技巧~我来帮你搞定这个问题!

先确认下你的原始数据,咱们先把代码摆出来:

import pandas as pd
df = pd.DataFrame({'id': ["1", "2", "3","4","5"], 
                   'mill': ["Company A Palm Oil Mill – Special Company A of CC Ltd", 
                            "Company X POM – Company X Ltd",
                            "DDDD Mill – Company New and Old Ltd", 
                            "Company Not Special – R Mill",
                            "Greatest Company – Great World POM"]})

第一步:先把连字符前后的内容分开

注意你的连字符是中文破折号(–),而且前后带空格,所以我们用Pandas的str.split方法直接分割成两列:

# expand=True会把分割结果拆成两个新列,分别存连字符前后的内容
df[['mill_section', 'company_section']] = df['mill'].str.split(' – ', expand=True)

跑完这行,你就会得到mill_section(连字符前的内容)和company_section(连字符后的内容)两个新列,方便后续提取。

第二步:提取以指定子串结尾的文本

假设你想要的是:

  • 从mill_section里提取以Mill或POM结尾的完整文本
  • 从company_section里提取以Ltd结尾的完整文本

咱们用正则表达式配合str.extract来实现,新手也能轻松上手:

提取Mill/POM结尾的厂房名称

# 正则表达式的意思是:匹配从开头到结尾,最后是Mill或POM的整个字符串
df['extracted_mill'] = df['mill_section'].str.extract(r'(.*(Mill|POM))$')

提取Ltd结尾的公司名称

# 同理,匹配到结尾是Ltd的完整字符串
df['extracted_company'] = df['company_section'].str.extract(r'(.*Ltd)$')

完整可运行代码

把所有步骤整合起来,直接复制就能跑:

import pandas as pd

df = pd.DataFrame({'id': ["1", "2", "3","4","5"], 
                   'mill': ["Company A Palm Oil Mill – Special Company A of CC Ltd", 
                            "Company X POM – Company X Ltd",
                            "DDDD Mill – Company New and Old Ltd", 
                            "Company Not Special – R Mill",
                            "Greatest Company – Great World POM"]})

# 分割连字符前后内容
df[['mill_section', 'company_section']] = df['mill'].str.split(' – ', expand=True)

# 提取目标厂房文本
df['extracted_mill'] = df['mill_section'].str.extract(r'(.*(Mill|POM))$')

# 提取目标公司文本
df['extracted_company'] = df['company_section'].str.extract(r'(.*Ltd)$')

# 打印结果看看
print(df)

如果你的“指定子串”不是Mill/POM或Ltd,只需要修改正则表达式里的内容就行~比如要提取以“Factory”结尾的,就把(Mill|POM)改成Factory。

内容的提问来源于stack exchange,提问作者Funkeh-Monkeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:43:24