如何打印包含部分输入的所有行?

How to print all rows containing a part of input?

提问人:BScpj 提问时间:11/29/2022 最后编辑:Andrej KeselyBScpj 更新时间:11/29/2022 访问量:39

问:

我有一个包含序列和基因名称的 csv 文件。我想从用户那里获取输入,并将包含用户输入的所有行打印为一部分。举个例子,我的数据是;

Gene 1    ATGCGGTCTA
Gene 2    ACGCCCATGA
Gene 3    TCGAC

当用户输入 GC 时,结果必须是

Gene 1   ATGCGGTCTA 
Gene 2   ACGCCCATGA

因为两者的序列中都有 GC。

到目前为止,我尝试了;

import csv
import sys
import pandas as pd
csv_file = csv.reader(open('DATA.csv', "r"), delimiter=",")
z=input('what would you like to search?').lower()
if z=='sequence':
 s=input('Enter sequence : ').upper()
 df = pd.read_csv('DATA.csv')
 a = list(df['seq'])
 b = ' '.join(str(s) for s in a)
 c= b.find(s)
python-3.x 列表 输入 序列

评论

0赞 0x0fba 11/29/2022
混合了 2 种不同的方法来处理 CSV,纯 Python 方法和 pandas 方法。您可以删除 pandas 并遍历 的行。csv_file

答:

0赞 Anton B 11/29/2022 #1

使用并假设带有序列的 DataFrame 列被调用,您可以执行以下操作:pandassequencesfiltered_df = df[df['sequences'].str.contains(s)]