gpt4 book ai didi

python - 仅保留模式 'id' 之前的 ("_"字符串的一部分)

转载 作者:行者123 更新时间:2023-11-30 22:15:26 25 4
gpt4 key购买 nike

我这里有一个小问题:

我实际上有一个 fasta 文件,例如:

g1.t1_0035_0042
ATTAGGAGGAA
g2.t1_0042_0042
ATTAGGAGA
g3.t1_0042_0035
ATTGGAAT
etc

我只想获取 id 名称的第一部分,我使用:

for record in SeqIO.parse(sp1_aa_corrected, 'fasta'):
print(record.id[record.id.index("_")::-1])

但我得到:

t.1g
t.2g
t.2g

我想得到:

g1.t1
g2.t1
g3.t1

没有_number_number感谢您的帮助。

另一个问题:如果我有一个这样的数据框:

gene_name   scaf_name       scaf_length cov_depth       GC
g3.t1 scaffold 6 56786 79 0.39
g4.t1 scaffold 6 56786 79 0.39
g1.t1 scaffold 256 789765 86 0.42
g2.t1 scaffold 890 3456 85 0.40
g5.t1 scaffold 1234 590 90 0.41

如果我只想提取与gene_name:“g2.t1”相对应的原始数据,并创建一个新的数据帧,例如:

gene_name   scaf_name       scaf_length cov_depth       GC
g2.t1 scaffold 890 3456 85 0.40

我该怎么做?

最佳答案

使用str.split按特定字符进行分割。在这种情况下,您还可以指定 maxsplit=1。由于这会返回一个列表,因此您需要索引第一个元素。

x = 'g1.t1_0035_0042'

res = x.split('_', maxsplit=1)[0]

print(res)

g1.t1
<小时/>

要过滤数据框,只需使用:

res = df[df['gene_name'] == 'g2.t1']

关于python - 仅保留模式 'id' 之前的 ("_"字符串的一部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com