【发布时间】:2017-03-29 21:16:03
【问题描述】:
我正在像这样查询熊猫数据框df。
df = df[
(df.value1 >= threshold1) &
(df.value2 >= threshold2) &
(df.value3.isin(list3))
]
Python 有内置函数all,它允许这种语法:
if all([
value1 > threshold1,
value2 > threshold2,
value3 in list3,
]):
而不是这个:
if (
value1 > threshold1 and
value2 > threshold2 and
value3 in list3,
):
Pandas 在 Python 中有类似于 all 的东西吗?谢谢。
另外,这是基于多个条件对 Pandas 数据框进行子集化的最快方法吗?
【问题讨论】:
-
这真的不是
all的用例,通常我会用and来写。 -
那么
all的用例是什么?谢谢。 -
类似
all(condition(x) for x in some_iterable) -
请注意,您使用
all可以满足您的需求,但这不是惯用的。在我摸索它之前,我必须看几次代码。我会立即知道使用and的行在做什么。此外,您对all的使用会创建不必要的中间数据结构,并使用函数调用。它效率不高,我不鼓励使用它,尤其是当您在循环中重复评估条件时。 -
我明白了!确实,它反对the official style guide!
标签: python pandas conditional-statements subset built-in