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

Python实现含括号列拆分:提取内外内容及生成预处理列

Python处理数据集code列的拆分与格式化

核心实现代码

我们可以借助pandas库结合正则表达式完成需求,以下是完整代码:

import pandas as pd
import re

# 构造示例数据集
data = {
    'id': [1, 2, 3],
    'code': ['-(83C24H)', '30(30C14H)', '25']
}
df = pd.DataFrame(data)

# 拆分outside和inside列
def split_code(code):
    match = re.match(r'^(.*?)\((.*?)\)$', code)
    if match:
        return match.group(1), match.group(2)
    else:
        return code, '0'

df[['outside', 'inside']] = df['code'].apply(lambda x: pd.Series(split_code(x)))

# 生成prepared列
def format_prepared(inside):
    if inside == '0':
        return '0'
    # 在数字前的字母后添加+分隔符
    return re.sub(r'([A-Za-z])(?=\d)', r'\1 + ', inside)

df['prepared'] = df['inside'].apply(format_prepared)

print(df)

代码说明

  • 拆分括号内容:用正则表达式^(.*?)\((.*?)\)$匹配带括号的结构,捕获括号前后的内容;无括号时直接返回原内容和0。
  • 格式化prepared列:用正则表达式([A-Za-z])(?=\d)定位数字前的字母,替换为字母 + 的格式;若inside为0,则直接返回0。

运行结果

idcodeoutsideinsideprepared
1-(83C24H)-83C24H83C + 24H
230(30C14H)3030C14H30C + 14H
3252500

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:46