在其他列中选择满足多个条件的列值
Posted
技术标签:
【中文标题】在其他列中选择满足多个条件的列值【英文标题】:Select column values satisfying multiple conditions in other columns 【发布时间】:2020-09-08 01:34:03 【问题描述】:我有一个熊猫数据框,例如:
Species Pathway Number of Gene Families
1 uniSU2 ABC 1.0
2 uniSU2 Wzy 11.0
3 uniSU2 Synthase 2.0
4 n116 Wzy 0.0
5 n116 ABC 4.0
7 n116 Synthase 14.0
8 Aullax ABC 9.0
9 Aulax Synthase 1.0
10 Aullax Wzy 2.0
11 Criepi Wzy 0.0
12 Criepi ABC 2.0
13 Criepi Synthase 3.0
我想选择具有所有三种可能途径的物种(第一列) - ABC、Wzy、合成酶(第二列)。 为此,对于所有三种途径,基因家族的数量(第 3 列)必须是正数(>0) - ABC > 0; Wzy > 0 和 Synthase > 0。
我的数据框的这个子集的结果是:
Species
uniSU2
Aullax
我认为这让我成功了:
geneCount_stacked.loc[geneCount_stacked['Number of Gene Families'] > 0, ['Species','Pathway']]
但我不知道如何从这里继续前进。
提前非常感谢!
【问题讨论】:
你的真实数据中可以有其他途径名称吗? 没有。只有三个 - ABC、合成酶和 Wzy 【参考方案1】:试试这个:
res = pd.DataFrame('Species': [x for x, y in df.groupby('Species') if len('ABC', 'Wzy', 'Synthase' & set(y.Pathway)) == 3 and all(y['Number of Gene Families'] > 0)])
输出
Species
0 Aullax
1 uniSU2
【讨论】:
以上是关于在其他列中选择满足多个条件的列值的主要内容,如果未能解决你的问题,请参考以下文章