我要求对if语句进行两次比较,但是pandas会给出错误。如何以pandas接受的方式重写语句?

问题描述 投票:1回答:2

if语句如下:

for line in result
    if result < 0 and test == 1:
        test = 0
        print('patient result ', (TestAmount/SMAs.amount[line] - 1))

有一系列这些但问题出在if语句中。当我运行代码时,我得到一个错误,说"ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."

我明白这意味着我不能拥有if语句标准,因为我有它们与pandas但不知道如何纠正它。在使用pandas DataFrame时,是否可以在两件事情上调整if语句?

我对编码很陌生,对术语非常不熟悉。我希望编写一个程序来分析实验室数据,然后希望不必再用它做太多。

python pandas dataframe
2个回答
0
投票

如果你想要一个布尔列表使用按位运算而不是andor

(result < 0) & (test == 1)

如果你想要所有的项目是True使用all

(result < 0).all() and (test == 1)

或者,如果您只想在每个值上运行条件,请使用for中的变量:

(line < 0) and (test == 1)

0
投票

一位同事帮助解决了这个问题。原来问题是该行不是整数。这是通过替换for循环修复如下:

for line in range(0,len(SMAs)): 

谢谢你的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.