为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

catspeake 2021-10-05 16:04:48
我发现的大多数解决方案是获取数据框中唯一项目(我不想要)的数量,或者按具有明确标题的列进行计数。我的数据框如下所示:       1   2   3   4ILLU1 ATG --T --- TGGILLU2 ATG -CT GGG TGGILLU3 ATG TTT AAA TGGILLU4 -TG --T --- T-G我试图获得每行的计数,其中每列都有一个完整的 3 碱基序列。因此,如果单元格中存在“-”,它将为零(这包括“---”、“--N”、“-NN”)。所以我试图使输出如下:ILLU1 2ILLU2 3ILLU3 4ILLU4 0我试过了:df_new = pd.DataFrame() # to hold the final valuescount = 0for 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)但我只是得到一个没有值的空数据框。
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

使用 str.contains


s=(~df.apply(lambda x : x.str.contains('-'))).sum(1)

s

Out[384]: 

ILLU1    2

ILLU2    3

ILLU3    4

ILLU4    0

dtype: int64


查看完整回答
反对 回复 2021-10-05
?
杨魅力

TA贡献1811条经验 获得超6个赞

您可以使用:


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    2

ILLU2    3

ILLU3    4

ILLU4    0

dtype: int64


查看完整回答
反对 回复 2021-10-05
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信