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

如何基于(pp)拆分DataFrame中带括号的字符串为两列?

如何按(pp)拆分CSV中的Name列

先看你的原始数据:

Name                      Combined Score
NDUFAF7 (pp) TRMT10C      0.911
NDUFAF7 (pp) PPARGC1A     0.846

你之前的两种写法都存在问题:

  • 第一种用\s+\(.*$拆分,这个正则会把(pp)及后面所有内容全匹配掉,自然只能拿到前面的部分。
  • 第二种用(pp)拆分,一是括号在正则里属于捕获组,split后会把(pp)也作为结果的一项;二是你CSV里的列名是Name(首字母大写),代码里写的df['name']大小写不匹配,直接触发错误。

正确实现代码

import pandas as pd

# 读取CSV,因为是空格分隔,用delim_whitespace=True自动处理多空格
df = pd.read_csv('your_file.csv', delim_whitespace=True)

# 拆分Name列:匹配(pp)前后的空白,拆分出两列
df[['preferredName_A', 'preferredName_B']] = df['Name'].str.split(r'\s*\(pp\)\s*', expand=True)

# 查看结果
print(df)

关键说明

  • 正则r'\s*\(pp\)\s*':
    • \(pp\)转义括号,因为括号是正则特殊字符,必须转义才能匹配字面的(pp)
    • \s*匹配0或多个空格,自动处理(pp)前后的空格,保证拆分后的列内容干净
  • 必须用df['Name']而非df['name'],和CSV里的列名大小写保持一致
  • expand=True参数让split结果直接展开成两列,无需额外处理

执行后会得到符合预期的结果:

NameCombined ScorepreferredName_ApreferredName_B
NDUFAF7 (pp) TRMT10C0.911NDUFAF7TRMT10C
NDUFAF7 (pp) PPARGC1A0.846NDUFAF7PPARGC1A

内容的提问来源于stack exchange,提问作者Yik Chuan Low

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:36:17