Pandas如何提取DataFrame列内组标签并新增为Group Tag列
Pandas提取文本中方括号内容实现方案
直接用pandas内置的字符串正则提取方法即可,无需安装第三方依赖,代码如下:
# 非贪婪匹配第一个出现的、被[]完整包裹的内容 df['Group Tag'] = df['Data'].str.extract(r'(\[.*?\])')
实现说明
- 正则
\[.*?\]的逻辑是从左到右匹配,遇到第一个[开始捕获,直到碰到最近的一个]就结束匹配,完全适配你给出的样例数据场景,不会把方括号外的无关内容带进来 - 该操作不会修改原有
Data列的内容,执行完后直接调用df.head(2)就能看到预期输出
预期输出效果
| Country | Data | Group Tag |
|---|---|---|
| America | blahblahblah[@A , @b]blahblahblah | [@A , @b] |
| Cuba | blahblahblahblahblahblah[@f, @f]blahblahblah | [@f, @f] |
若运行后发现
Group Tag列存在空值,说明对应行的Data字段里没有符合[xxx]格式的内容,可针对性排查原始数据。
内容的提问来源于stack exchange,提问作者Jose
相关产品推荐
相关产品推荐

