pandas 中超过阈值的列数总和

Sum of columns over threshold in pandas

提问人:David Siret Marqués 提问时间:4/25/2023 更新时间:4/27/2023 访问量:70

问:

我正在尝试对 pandas 中的一堆列求和,并检查该总和是否超过 100。

我已经对总和部分进行了排序,我试图找到一种将总和的每个值与标量进行比较的方法。

这是我的第一次尝试:

df[[col1,col2]].sum(axis=1) > 100.0

这给了 ValueError:Series 的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

我尝试过 a.any 和 a.all,但它们都只返回 true 或 false,所以这不起作用。我也尝试过创建一个具有该值的熊猫系列,但它也给出了错误。

Python Pandas 数据帧 比较

评论

0赞 Dogbert 4/25/2023
你能发布你尝试过的完整代码吗?表达式将返回一个布尔值数组,而不是单个布尔值。
0赞 David Siret Marqués 4/25/2023
这个想法基本上是,我想知道的是如何将该数组与阈值进行比较
0赞 Dogbert 4/25/2023
您想将布尔数组与什么进行比较?
0赞 David Siret Marqués 4/25/2023
我想要与 100 相比的列的总和,如果总和中的任何一行超过 100,那么我将引发错误
1赞 Dogbert 4/25/2023
这是否有效:?if (df[[col1,col2]].sum(axis=1) > 100.0).any():

答:

0赞 David Siret Marqués 4/26/2023 #1

行为

(df[[col1,col2]].sum(axis=1) > 100.0).any()

如果总和中的任何一行超过 100,则返回 true,否则返回 False

感谢 Dogbert 在评论中提供此答案