首页 > 解决方案 > 如何检查数据帧的第 i 行是否等于一个值?

问题描述

我无法解决这个问题。

for i in range(0,len(df1.columns)):
    if df1.iloc[i:].values ==1:
        print ('Buy')
        order= True
    elif df1.iloc[i:] == -1:
        print ('Sell')
        order= True
    else:
        print ('Do nothing')
        time.sleep(30)
    if a==5:
        break

我有一个dataframe df1包含值-1、0和1的值。所以基本上我正在尝试打印例如“购买”如果值1出现在数据框中(此代码是循环的结束,在此之前我正在设置每 30 秒一个新值df)

恢复:

每 30 秒为 df 设置一个新值(已经这样做了)检查这个值是 -1,0 还是 1 根据新值每 30 秒打印一次“购买”“出售”或“什么都不做”,定时睡眠,然后设置一个新的df等的价值

当我运行上面的代码时,它给了我:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().

标签: pythondataframe

解决方案


我认为因为您尝试将列表与单个值进行比较,所以您收到此错误消息

我们不清楚您的数据框 df1 形状,所以我在这里猜测,尝试更改

if df1.iloc[i:].values ==1:

if df1.iloc[i] ==1:

也改变

elif df1.iloc[i:] == -1:

elif df1.iloc[i] == -1:

推荐阅读