我读了几个关于大熊猫数据帧循环的问题,但是我的案例无法解决这个问题
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().
答案 0 :(得分:1)
您正在循环内部访问整个列px['first']
,而该循环内部一次只能访问一个条目。
要修复当前循环,可能就足以将px['first']
更改为row['first']
,并px['second']
更改为row['second']
。< / p>
更好的是用等效的pandas表达式替换这个手动循环,这将更加快速和可读。如果您发布完整代码(编辑成问题,而不是评论!),我们可能会提供帮助。