比较pandas中的两列

时间:2016-10-25 23:19:41

标签: python pandas

我尝试使用以下代码比较两列的值:

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().

知道如何解决这个问题吗?

1 个答案:

答案 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)就是你所需要的。感谢。