【问题标题】:How to print all rows containing a part of input?如何打印包含部分输入的所有行?
【发布时间】:2022-11-29 05:11:28
【问题描述】:

我有一个包含序列和基因名称的 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)

【问题讨论】:

  • 您混合使用 2 种不同的方法来处理 CSV,即纯 Python 方法和 pandas 方法。您可以删除 pandas 并迭代 csv_file 的行。

标签: python python-3.x list input sequence


【解决方案1】:

使用pandas 并假设您的数据框的序列列称为sequences,您可以执行以下操作: filtered_df = df[df['sequences'].str.contains(s)]

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 2015-11-27
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2022-12-12
    • 2018-06-11
    • 2021-06-28
    相关资源
    最近更新 更多