在R语言中提取[...]模式内字符串并生成新列
解决方案(基于Python Pandas)
如果你用Python的pandas库处理这类文本提取需求,可以按以下步骤实现:
1. 准备数据
先构造示例数据框(可替换为你的实际数据源):
import pandas as pd df = pd.DataFrame({ 'Industry': ['所有行业总计', '农业 [11]', '制造业 [31-33]'] })
2. 生成Code列
提取Industry列中方括号及内部的内容,无匹配项时填充为空字符串:
df['Code'] = df['Industry'].str.extract(r'(\[.*?\])').fillna('')
3. 生成Industry_2列
移除Industry列中的方括号及内部内容(包括括号前的空格),保留剩余纯行业名称:
df['Industry_2'] = df['Industry'].str.replace(r'\s*\[(.*?)\]', '', regex=True)
最终结果
执行上述代码后,数据框将完全符合你的预期格式:
| Industry | Code | Industry_2 |
|---|---|---|
| 所有行业总计 | 所有行业总计 | |
| 农业 [11] | [11] | 农业 |
| 制造业 [31-33] | [31-33] | 制造业 |
正则表达式说明
(\[.*?\]):精准匹配方括号及其中的内容,.*?采用非贪婪模式,避免错误匹配多个方括号的场景\s*\[(.*?)\]:\s*匹配括号前的任意空白字符,确保彻底移除行业名称与括号之间的空格干扰
内容的提问来源于stack exchange,提问作者user15032839
相关产品推荐
相关产品推荐

