2016-10-25 2 views
0

나는 다음과 같은 코드를 사용하여 두 개의 컬럼의 값을 비교하기 위해 노력하고있어 :팬더에 두 개의 열을 비교

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

이것 좀보세요 : http://stackoverflow.com/questions/10062954/valueerror-the-truth-value-of-an-array-with-more-than-one-element-is-abiguous – wwl

+0

너 먼저 논리를 확인해야하며, 무엇을 달성하기를 원합니 까? 'df [ 'predicted_spread']> df [ 'vegas_spread']'는 논리 값을 기대하는 동안 논리 계열을 반환합니다. – Psidom

답변

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) df['predicted_spead'] > df['vegas_spread']의 모든 comparation 다음,

if (df['predicted_spread'] > df['vegas_spread']).all() is True: 
    total_bet += 1 
에 해당하는 경우 귀하의 의도는 total_bet을 증가하는 경우

(3) total_bet도 벡터이므로 각 비교를 기록하려는 경우

total_bet = total_bet + (df['predicted_spread'] > df['vegas_spread']) 

옵션 (1)이 필요한 것 같습니다. 감사.