python - 如何使用python计算csv文件中具有条件的元素

标签 python csv bioinformatics

我是Python语言新手。我有一个 csv 格式的表,其中包含 n 列,其中标题为 Tax_id,每列都包含这样的物种名称

9606                  9606.1               508771  
0                root                root                  root    
1  cellular organisms  cellular organisms    cellular organisms
2           Eukaryota           Eukaryota             Eukaryota
3        Opisthokonta        Opisthokonta                   Sar
4             Metazoa             Metazoa             Alveolata
5           Eumetazoa           Eumetazoa           Apicomplexa
6           Bilateria           Bilateria           Conoidasida
7       Deuterostomia       Deuterostomia              Coccidia
8            Chordata            Chordata        Eucoccidiorida
9            Craniata            Craniata           Eimeriorina

我想要做的是能够编写一个Python代码,仅对包含名为“Metazoa”的物种的列计算每个物种的出现次数。

#to return something like

    Eumetazoa 2
    Bilateria 2
    Craniata  2

最佳答案

我仍然不完全确定你想要什么。这样的东西有用吗?请注意,您需要为此安装 pandas 软件包 ( How to install pandas )。

我假设您的 CSV 文件如下所示:

s = '''9606,9606.1,508771
0,root,root,root
1,cellular organisms,cellular organisms,cellular organisms
2,Eukaryota,Eukaryota,Eukaryota
3,Opisthokonta,Opisthokonta,Sar
4,Metazoa,Metazoa,Alveolata
5,Eumetazoa,Eumetazoa,Apicomplexa
6,Bilateria,Bilateria,Conoidasida
7,Deuterostomia,Deuterostomia,Coccidia
8,Chordata,Chordata,Eucoccidiorida
9,Craniata,Craniata,Eimeriorina'''

算法:

import pandas as pd
from io import StringIO

def filter_and_count(df, search_string):
    df_filtered = df.loc[:, (df == search_string).any(axis=0)]
    return pd.melt(df_filtered)['value'].value_counts()

df = pd.read_csv(StringIO(s))  # replace this with read_csv("filename")
print(filter_and_count(df, 'Metazoa'))

输出:

root                  2
Metazoa               2
Deuterostomia         2
Craniata              2
cellular organisms    2
Chordata              2
Eumetazoa             2
Opisthokonta          2
Eukaryota             2
Bilateria             2
Name: value, dtype: int64

关于python - 如何使用python计算csv文件中具有条件的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67273981/

相关文章:

python - Pandas 将列中的列表列表展平?

python - 大文本文件到小 Excel 文件

regex - 如何连接具有相同名称开头的文件?

bioinformatics - 如何解释两种情况下的对数倍数变化 (log2FC)

docker - 为什么 docker hub 上的某些存储库没有 dockerfile?

python - 如何更改 Tkinter OptionMenu 小部件的菜单背景颜色?

python - 如何调试使 python 崩溃的 python 脚本

python - 如何提高这段代码的性能?

c# - 如何使用 EPPlus 将数据从 csv 导入 Excel?

python - 循环遍历csv文件并根据条件获取数据