我尝试使用以下代码比较两列的值:
if df['predicted_spread'] > df['vegas_spread']:
total_bet += 1
它返回以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
知道如何解决这个问题吗?
答案 0 :(得分:3)
首先,df['predicted_spread'] > df['vegas_spread']
的结果也是一个由布尔值组成的系列,例如[True, True, False, ...]
,因此您会收到错误消息The truth value of a Series is ambiguous
。
那你该怎么办?这取决于你的申请。
(1)如果您打算计算True
条件的数量,那么
total_bet = sum(df['predicted_spread'] > df['vegas_spread'])
(2)如果你在total_bet
的所有比较都是真的时增加df['predicted_spead'] > df['vegas_spread']
,那么
if (df['predicted_spread'] > df['vegas_spread']).all() is True:
total_bet += 1
(3)如果total_bet
也是一个向量,并且你打算记录每个比较,那么
total_bet = total_bet + (df['predicted_spread'] > df['vegas_spread'])
我想选项(1)就是你所需要的。感谢。