猿问

如何按计数超过整个工作表中特定值的值过滤数据框?

我有一个数据框如下


Genes   s1  s2  s3  s4  s5  s6  s7  s8  s9  s10

AB1     0   0   0   0   0   0   0   0   0   0

GB2     1   0   0   25  0   10  0   0   5   0

AB3     0   0   0   0   0   0   0   0   0   0

AB4     0   0   0   0   0   0   0   0   0   0

hB5     0   0   50  0   66  0   88  15  0   0

OB6     0   0   0   0   0   0   0   0   0   0

AB7     25  40  30  45  44  15  0   80  85  10

UB8     0   0   0   0   0   0   0   0   0   0

YB9     0   1   0   5   1   0   5   4   2   2

AB10    0   0   0   0   0   0   0   0   0   0

TB11    0   0   0   0   0   0   0   0   0   0

AB12    0   0   0   0   0   0   0   0   0   0

我想过滤至少4个样本中计数大于10的基因


预期的输出是


Genes   s1  s2  s3  s4  s5  s6  s7  s8  s9  s10

hB5     0   0   50  0   66  0   88  15  0   0

AB7     25  40  30  45  44  15  0   80  85  10

我尝试了以下代码,但没有给出预期的结果


import pandas as pd

counts = pd.read_excel("rna.xlsx")

counts = counts[(counts > 0).sum(axis=1) >= 4]

counts.to_csv("output.tsv", sep="\t", header=False)


慕姐4208626
浏览 150回答 1
1回答

一只甜甜圈

比较值 by10而不是 by 0,如果第一列未转换为索引 add index_col=0:counts = pd.read_excel("rna.xlsx",                         index_col=0)counts = counts[(counts > 10).sum(axis=1) >= 4]print (counts)       s1  s2  s3  s4  s5  s6  s7  s8  s9  s10Genes                                         hB5     0   0  50   0  66   0  88  15   0    0AB7    25  40  30  45  44  15   0  80  85   10
随时随地看视频慕课网APP

相关分类

Python
我要回答