ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()&

2024-09-28 16:57:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧“信号”:

    coresym open_orders direction
27  EURUSD  2.0         1.0
76  XAUUSD  2.0         9.0

因为我需要一些条件来设置我的“\u exec\u dict”,这是一个告诉交易平台我的订单是什么的字典

for symbol in do_symbols:
    #close positon
    if ((signal['coresym']==symbol) & (signal['direction'] == 9)):
        _exec_dict['_action'] = 'CLOSE'
        _exec_dict['_symbol'] = symbol
        _exec_dict['_magic'] = symbols_magic_dic[symbol]
        _ret = self._execution._execute_(_exec_dict)
        print('{} is traded'.format(symbol))

问题是我不能使用

if ((signal['coresym']==symbol) & (signal['direction'] == 9)):

进行条件确定

要进行测试,请执行以下操作:

if((signal['coresym']=='XAUUSD') & (signal['direction'] == 9)):
    print('ok')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-52-f0dcc93290aa> in <module>
----> 1 if((signal['coresym']=='XAUUSD') & (signal['direction'] == 9)):
      2     print('ok')

~\Anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
   1476 
   1477     def __nonzero__(self):
-> 1478         raise ValueError(
   1479             f"The truth value of a {type(self).__name__} is ambiguous. "
   1480             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."

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

有一些改变

if signal[signal['coresym'] == 'XAUUSD']['direction'] == 9:
       print('ok')

结果是:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-49-67440d7a0b81> in <module>
----> 1 if signal[signal['coresym'] == 'XAUUSD']['direction'] == 9:
      2     print('ok')

~\Anaconda3\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
   1476 
   1477     def __nonzero__(self):
-> 1478         raise ValueError(
   1479             f"The truth value of a {type(self).__name__} is ambiguous. "
   1480             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."

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

在搜索之后,比如Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() 我确实使用了“&;”


Tags: ofinselfsignalifisvaluesymbol
1条回答
网友
1楼 · 发布于 2024-09-28 16:57:59

{}不是问题所在

if((signal['coresym']=='XAUUSD') & (signal['direction'] == 9)): print('ok')

你是否需要说如果{所有{}的元素都等于{},所有{}的元素都是{}

或者你的意思是如果any其中的一个

这就是错误描述的模糊性

在你的猫周围使用all()any()。例如:

if((signal['coresym']=='XAUUSD').all() & (signal['direction'] == 9).all()): print('ok')

相关问题 更多 >