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

求助:如何移除括号内数字并将字符串转换为DataFrame?

可行解决方案

方法1:修正后的sed命令

你之前的sed正则仅匹配了(数字,)的局部场景,无法覆盖单数字、多组数字(比如(-62,-51))的情况,用以下命令可完整处理:

sed -E 's/\(-?[0-9,-]+\)//g; s/, /\n/g; s/,$//' file.txt > file2.txt

各部分作用:

  • s/\(-?[0-9,-]+\)//g:匹配所有包含负号、数字、逗号的(...)内容,全部替换为空
  • s/, /\n/g:将逗号加空格的分隔符替换为换行符
  • s/,$//:移除文本末尾多余的逗号

方法2:awk工具实现

用awk指定多分隔符直接提取基因名:

awk -F '[(), ]+' '{for(i=1;i<=NF;i++){if($i!="") print $i}}' file.txt

原理是将(、)、,、空格都设为分隔符,遍历所有字段并打印非空内容,自动实现每行一个基因名。

方法3:Python脚本(适配DataFrame需求)

如果后续需要直接生成Pandas DataFrame,用Python更便捷:

import pandas as pd

with open('file.txt', 'r') as f:
    content = f.read().strip()

# 提取基因名列表
gene_list = [gene.split('(')[0] for gene in content.split(', ') if gene]

# 生成DataFrame并保存为文本
df = pd.DataFrame(gene_list, columns=['Gene'])
df.to_csv('gene_list.txt', index=False, header=False)

运行后会直接输出每行一个基因名的文件,也可基于生成的DataFrame做后续分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:36:01