计算列表数组中特定元素的总出现次数

2024-04-25 07:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到下面的数组列表作为for循环的输出。如何计算每个列表中出现的正确和错误(分别)的总数。你知道吗

[array(['false', 'false', 'false', 'true', 'true', 'true', 'false', 'true',
       'false', 'true', 'false', 'false'], dtype='|S5')]
[array(['false', 'false', 'false', 'true', 'true', 'true', 'false', 'true',
       'false', 'true', 'false', 'false'], dtype='|S5')

生成此输出的代码是:

for df in df_elements:
        cutoff_list_neg.append(np.where((df['score'])>=0, 'true', 'false'))
        print cutoff_list_neg

df\u elements是数据帧列表:

[                          seq  score    status
 2911  TCATCCCGATTTTGATGCATCTA  -2.96  negative
 3477                ATGGCACTG  -3.60  negative
 178                 TTAGAAAGC  -3.78  negative
 4667  CTAATGATGATGCTCTTCAGTAC   2.01  negative
 1401  ACTGACTTCTTTAAATGAAGAGT   1.67  negative
 351   ATCTGCTCTTCGTGTTGAAGAAG   4.32  negative
 3678  AAGGATCGCTATGGCTCCTGGAT  -5.39  negative
 2294  ATTATCTTTAACTGATGAAGAGC   0.15  negative
 5378  TCATCTCTCTGAAAAACAAGATA  -1.88  negative
 4290  AACCTGCAATCCGGAACCAGATC   2.72  negative
 3353                CCGATGGGC  -1.97  negative
 4124  CGGACATTGCCGAGTCCCAGGTC  -2.31  negative,
                           seq  score    status
 2787                AAGGTTGGC   6.10  negative
 5378  TCATCTCTCTGAAAAACAAGATA  -1.88  negative
 3928                AGCGAAACG  -7.32  negative
 3678  AAGGATCGCTATGGCTCCTGGAT  -5.39  negative
 1607  AGGCACAACTTATGTAACAGATA   2.32  negative
 4685  TGCTCTTCAGTACGTTGAAGAAT  -2.35  negative
 1652  TGGCTTCGATTTTGTTATCGATG  -0.22  negative
 3477                ATGGCACTG  -3.60  negative
 275   TCTGTTGGGTTTTCATACAGCTA   7.11  negative
 3769  CAGGTGAGCTGTCGCGGCAGCTG   0.98  negative
 663   TATTAAGTATTCTCTAGCAGACC   3.61  negative
 1855                TTCGGATGC  -6.88  negative
Desired output is:
item   True    False
df1    5       7
df2    5       7

谢谢


Tags: falsetruedf列表forelementsarrayseq
1条回答
网友
1楼 · 发布于 2024-04-25 07:52:25

我相信你需要用^{}理解列表:

cutoff_list_neg = [(df['score']>=0).value_counts() for df in df_elements]

循环版本:

cutoff_list_neg = []
for df in df_elements:
    val = (df['score']>=0).value_counts()
    cutoff_list_neg.apprnd(val)

然后将^{}与转置和重命名索引名一起使用:

df = (pd.concat(cutoff_list_neg, axis=1, ignore_index=True)
        .T
        .rename(lambda x: 'df{}'.format(x + 1)))
print (df)
     False  True 
df1      7      5
df2      7      5

相关问题 更多 >