如何按行获取熊猫数据框中不唯一的项目数?

我发现的大多数解决方案是获取数据框中唯一项目(我不想要)的数量,或者按具有明确标题的列进行计数。


我的数据框如下所示:


       1   2   3   4

ILLU1 ATG --T --- TGG

ILLU2 ATG -CT GGG TGG

ILLU3 ATG TTT AAA TGG

ILLU4 -TG --T --- T-G

我试图获得每行的计数,其中每列都有一个完整的 3 碱基序列。因此,如果单元格中存在“-”,它将为零(这包括“---”、“--N”、“-NN”)。


所以我试图使输出如下:


ILLU1 2

ILLU2 3

ILLU3 4

ILLU4 0

我试过了:


df_new = pd.DataFrame() # to hold the final values

count = 0

for rows in df:

   if not sum(df[rows].str.contains("-")) > 0: # if no hyphen present

       count += 1 # add to final count

   else:

       count = count # does not get included final count

       df_new["Final Count"] = count 


print(df_new)

但我只是得到一个没有值的空数据框。


catspeake
浏览 196回答 2
2回答

青春有我

使用 str.containss=(~df.apply(lambda x : x.str.contains('-'))).sum(1)sOut[384]: ILLU1    2ILLU2    3ILLU3    4ILLU4    0dtype: int64

杨魅力

您可以使用:df.apply(lambda x: ['-' not in i for i in x]).sum(1)或者df.apply(lambda x: ['-' in i for i in x]).ne(1).sum(1)输出:ILLU1    2ILLU2    3ILLU3    4ILLU4    0dtype: int64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python