首页 > 解决方案 > 如何计算列数据框Python中的出现次数

问题描述

我有这个数据框

        ORF    IDClass  genName                               ORFDesc
0      b186  [1,1,1,0]   'bglS'                      beta-glucosidase
1     b2202  [1,1,1,0]   'cbhK'                   carbohydrate kinase
2      b727  [1,1,1,0]   'fucA'         L-fuculose phosphate aldolase
3     b1731  [1,1,1,0]  'gabD1'  succinate-semialdehyde dehydrogenase
4      b234  [1,1,1,0]  'gabD2'  succinate-semialdehyde dehydrogenase

我需要计算有多少寄存器有 IDClass = [1,1,1,0], IDClass = [1,2,0,0] 等

我使用他的 str.count().sum() 函数,但它返回的次数比我数据集中的寄存器多。我究竟做错了什么?

前任:

IN: count = df2.IDClass.str.count('[1,1,1,0]').sum()
OUT: [3924 rows x 4 columns]
     21552

如果我做:

IN: count = df2.IDClass.str.count('[1,1,1,0]').sum()
OUT: [3924 rows x 4 columns]
0       7
1       7
2       7
3       7
4       7
       ..
3919    6
3920    6
3921    6
3922    6
3923    6

任何的想法?谢谢提前,

标签: pythonpandas

解决方案


如果你IDClass是字符串类型,你可以这样做:

df['IDClass'].value_counts()

如果出现错误,则很可能是您IDClass的列表类型。然后你可以使用tuple

df['IDClass'].apply(tuple).value_counts()

推荐阅读