如何串联数据框选择标准

时间:2019-04-04 15:35:26

标签: python pandas

我需要能够提供以下形式的条件列表:

(df['SalePrice'] >= 50000), (df['SalePrice'] <= 1e10)

我将从一小串带有byRange的lambda的元组中进行编译

打入一个电话,我认为应该大致像这样:

df[list(map(byRange, cutoffs))]

这样,结果就可以作为df上的组合选择器,如下所示:

df[(df['SalePrice'] >= 50000) & (df['SalePrice'] <= 1e10)]

我的问题是,如何将这些列表元素与(按位'&')运算符连接?

1 个答案:

答案 0 :(得分:1)

df[df['SalePrice'].isin(conditions)]

在您的特定情况下为:

df[df['SalePrice'].isin([50000,1e10])]

您可以阅读有关isin here

的更多信息

编辑

正如ALollz所指出的,在这种情况下,我的答案是完全错误的。 OP并没有要求完全匹配(.isin()就是这样)。因此,正如OP在他对这个答案.query()的评论中所提到的,实际上是人们可以采取的方式。

df.query('SalePrice >= 50000 & SalePrice <= 1e10')