如何循环pandas数组?

时间:2018-04-14 16:51:22

标签: python pandas

我读了几个关于大熊猫数据帧循环的问题,但是我的案例无法解决这个问题

px=pd.read_sql()

for i, row in px.iterrows():
    if x == 1 :
        if px['first'] <= S1 :
            S1 = px['first'];

        if px['second'] > S2 :
            previous_value = last_value;
            last_value = px['second'];
            x = 0;
    else :
.....

这当然是显示循环逻辑的代码的一部分。我期望逐行读取行,因为我可以将每行的值与前一行进行比较,但是

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

1 个答案:

答案 0 :(得分:1)

您正在循环内部访问整个列px['first'],而该循环内部一次只能访问一个条目。

要修复当前循环,可能就足以将px['first']更改为row['first'],并px['second']更改为row['second']。< / p>

更好的是用等效的pandas表达式替换这个手动循环,这将更加快速和可读。如果您发布完整代码(编辑成问题,而不是评论!),我们可能会提供帮助。