我有以下数据框:
import pandas as pd
df = pd.DataFrame({ 'gene':["foo","bar","qux","woz"], 'cell1':[5,0,1,0], 'cell2':[12,90,13,0]})
df = df[["gene","cell1","cell2"]]
看起来像这样:
gene cell1 cell2
0 foo 5 12
1 bar 0 90
2 qux 1 13
3 woz 0 0
我想要做的是根据第二列以后的至少一个值是否大于2来选择行。产生这个:
gene cell1 cell2
0 foo 5 12
1 bar 0 90
2 qux 1 13
我试过了,但它并没有给我我想要的东西:
df[(df.values > 2).any(axis=1)]
做正确的方法是什么?
答案 0 :(得分:3)
您应该选择cell1
和cell2
,然后针对2
进行检查。示例 -
In [4]: df[(df[['cell1','cell2']] > 2).any(axis=1)]
Out[4]:
cell1 cell2 gene
0 5 12 foo
1 0 90 bar
2 1 13 qux
答案 1 :(得分:0)
怎么样:
df[(df.cell1 > 2).any(axis=1)]
在第二栏中,我不确定你是在谈论cell1还是cell2 ......