我有一个数据帧“信号”:
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().
搜索后,像一个系列的真相值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()
if((信号['coresym']=='XAUUSD')
是否需要说明
信号['coresym']
的所有元素都等于XAUUSD
并且信号['方向']
的所有元素都=9
。
或者你的意思是如果他们中的任何一个。
这就是错误所描述的模糊性。
在您的猫周围使用
all()
或any()
。例如:
if((信号['coresym']=='XAUUSD'). all()
但我有一个错误。 ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 我怎样才能修好它?
当我运行以下代码时: 它给出了以下错误: ValueError:序列的真值不明确。 使用a.empty、a.bool()、a.item()、a.any()或a.all() 这里怎么了?
下面的代码给我值错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()
问题内容: 在用or条件过滤我的结果数据帧时遇到问题。我希望我的结果df提取var大于0.25且小于-0.25的所有列值。 下面的逻辑为我提供了一个模糊的真实值,但是当我将此过滤分为两个单独的操作时,它可以工作。这是怎么回事 不知道在哪里使用建议。 问题答案: 在和python语句需要-值。因为这些被认为是模棱两可的,所以您应该使用“按位” (或)或(和)操作: 对于此类数据结构,它们会重载以生成
问题内容: 在用条件过滤我的结果数据帧时遇到问题。我希望我的结果提取大于0.25且小于的所有列值。 下面的逻辑为我提供了一个模糊的真实值,但是当我将此过滤分为两个单独的操作时,它起作用。这是怎么回事 不知道在哪里使用建议。 问题答案: 在和python语句需要值。因为这些被认为是模棱两可的,所以你应该使用操作: 对于此类数据结构,它们会重载以产生元素级(或)。 只是为该语句添加更多解释: 当你想获