gpt4 book ai didi

python - 使用任意数量的条件过滤 Pandas Dataframe

转载 作者:行者123 更新时间:2023-12-01 08:49:12 25 4
gpt4 key购买 nike

我对使用 Pandas 的基本过滤和查询感到满意。例如,如果我有一个名为 df 的数据框我可以做 df[df['field1'] < 2]df[df['field2'] < 3] .我还可以将多个条件链接在一起,例如:
df[(df['field1'] < 3) & (df['field2'] < 2)] .

如果我事先不知道需要使用多少标准怎么办?有没有办法将任意数量的这些操作“链接”在一起?我想传递一个过滤器列表,例如 [('field1', 3), ('field2', 2), ('field3', 4)]这将导致这三个条件链接在一起。

谢谢!

最佳答案

pandas 系列对象具有小于、大于等操作作为您可以调用的方法。所以df['field1'] < 3变成 df['field1'].lt(3) .这不是非常重要,但它使代码更具可读性。

要实现您的要求,您可以使用 reduce functools 中的函数,以及 and_ (相当于 & )来自运算符(operator)包。

from functools import reduce
from operator import and_

reduce(and_, (df.field1.lt(3), df.field2.lt(2), df.field3.lt(4)))

关于python - 使用任意数量的条件过滤 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com