Python ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()&;
我有一个数据帧“信号”:Python ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()&;,python,pandas,Python,Pandas,我有一个数据帧“信号”: 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
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-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().
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
---->1如果信号[信号['coresym']=='XAUUSD']['direction']==9:
2打印('ok')
~\Anaconda3\lib\site packages\pandas\core\generic.py in\uuuu非零(self)
1476
1477定义非零(自):
->1478升值错误(
1479F“一个{type(self)。{name}的真值是不明确的。”
1480“使用a.empty、a.bool()、a.item()、a.any()或a.all()
ValueError:序列的真值不明确。请使用a.empty、a.bool()、a.item()、a.any()或a.all()。
搜索之后,就像
我确实使用了“&”。问题不在于
&
if((信号['coresym']='XAUUSD')和(信号['direction']==9)):打印('ok')
你是否需要说,如果信号['coresym']
的所有元素都等于XAUUSD
,并且信号['direction']的所有元素都等于=9
或者你的意思是如果他们中的任何一个
这就是错误描述的模糊性
在Predcat周围使用all()
或any()
。例如:
if((信号['coresym']='XAUUSD').all()&(信号['direction']==9.all()):打印('ok')
问题不在&
if((信号['coresym']='XAUUSD')和(信号['direction']==9)):打印('ok')
你是否需要说,如果信号['coresym']
的所有元素都等于XAUUSD
,并且信号['direction']的所有元素都等于=9
或者你的意思是如果他们中的任何一个
这就是错误描述的模糊性
在Predcat周围使用all()
或any()
。例如:
if((信号['coresym']='XAUUSD').all()&(信号['direction']==9.all()):打印('ok'))
如果你想用这个实现什么?我可以问一下更好的方法是什么吗?因为我需要一个条件来告诉我要设置什么执行命令?如果你想用这个实现什么?我可以问一下更好的方法是什么吗?因为我需要一个条件来告诉我要设置什么执行命令?
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().