我是python pandas的新手。我构建了一个小函数,现在我总是得到以下错误:
系列的真值是模棱两可的。使用a.empty,a.bool(), a.item(),a.any()或a.all()。
我知道这个错误已经在其他问题中讨论了,但是我并没有真正得到我应该做的不同以及错误是如何发生的。
所以这是我的简单功能:
def relativeWinner():
if df['GoldSummer'] >0 & df['GoldWinter'] >0:
df['diff'] = abs(df['GoldSummer'] - df['GoldWinter'])/(df['GoldSummer'] + df['GoldWinter'])
return df['diff'].idxmax()
有谁能告诉我这里有什么不对,以及我该如何解决它?
答案 0 :(得分:1)
至于为什么会出现这个特定问题,请参阅以下文章:
关于您的代码,请尝试以下方法:
df['diff'] = [abs(tup[0] - tup[1]) / tup[0] if (tup[0] > 0) and (tup[1] > 0) else 'NaN' for tup in zip(df['GoldSummer'], df['GoldWinter'])]