gpt4 book ai didi

python - 组合函数 (AND)

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:29 25 4
gpt4 key购买 nike

我有一个关于组合函数的问题。

我的目的是同时应用两个函数。基本上,我想通过寻找数据集最低部分的 5% 分位数和另一端的最高 % 来削减我的数据集的极值。

df = df[df.temperature >= df.temperature.quantile(.05)]

获取高于 5% 分位数的值

df = df[df.temperature <= df.temperature.quantile(.95)]

获取所有低于 95% 分位数的值。

我现在的问题是

df = df[df.temperature >= df.temperature.quantile(.05)]
df = df[df.temperature <= df.temperature.quantile(.95)]

有效,但并不精确,因为第二个函数建立在前一个剪切之上。那么我怎样才能同时切割两者呢?

df = df[df.temperature >= df.temperature.quantile(.05) & <=    df.temperature.quantile(.95)]

不起作用。

感谢支持!

已解决:

df = df[(df.temperature >= df.temperature.quantile(.05)) & (df.temperature <= (df.temperature.quantile(.95)))]

最佳答案

由于运算符的优先级,您需要在条件周围加上括号:

f = df[(df.temperature >= df.temperature.quantile(.05)) & (df.temperature <= df.temperature.quantile(.95))]

docs显示 >= 的优先级低于 &,因此您需要括号,此外您的代码应该会引发不明确的错误。

在代码风格方面,将您的条件作为变量更具可读性,因此我将其重写为:

low_limit = df.temperature >= df.temperature.quantile(.05)
upper_limit = df.temperature >= df.temperature.quantile(.95)

那么你的过滤就变成了:

df[(low_limit) & (upper_limit)]

您可以选择更改

low_limit = df.temperature >= df.temperature.quantile(.05)

low_limit = (df.temperature >= df.temperature.quantile(.05))

所以你不需要过滤中的括号

关于python - 组合函数 (AND),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532144/

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