如何计算列数据帧 Python 中的出现次数

时间:2021-01-13 17:20:19

标签: python pandas

我有这个数据框

        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

有什么想法吗? 先谢谢了,

1 个答案:

答案 0 :(得分:1)

如果您的 [AllowAnonymous] 是字符串类型,您可以这样做:

IDClass

如果出现错误,很可能是您的 df['IDClass'].value_counts() 是列表类型。然后你可以使用 IDClass:

tuple