gpt4 book ai didi

python - Python/Pandas 中按位运算符的 any() 和 all() 类似物

转载 作者:行者123 更新时间:2023-11-30 22:15:11 25 4
gpt4 key购买 nike

我有一个 pandas DataFrame,其中包含“类别”和“总计”列。可以有 4 个不同的类别:A、B、C、D。我以字典的形式得到每个类别的切点值。我需要排除总计超过相应切点的所有条目。这工作正常:

cat = weekly_units['Category']
total = weekly_units['Total']
weekly_units = weekly_units[(cat == 'A') & (total <= cutpoints['A'])
| (cat == 'B') & (total <= cutpoints['B'])
| (cat == 'C') & (total <= cutpoints['C'])
| (cat == 'D') & (total <= cutpoints['D'])]

但我发现它很湿而且不符合Python风格。有没有办法写这样的东西?

weekly_units = weekly_units[any([(cat == k) & (total <= v) for k, v in cutpoints.items()])]

最佳答案

是的。您要找的是numpy.logical_or :

conditions = [(cat == k) & (total <= v) for k, v in cutpoints.items()]
weekly_units = weekly_units[np.logical_or.reduce(conditions)]

关于python - Python/Pandas 中按位运算符的 any() 和 all() 类似物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356233/

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