Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
序列的真值是不明确的python数据帧_Python_Pandas_Dataframe - Fatal编程技术网

序列的真值是不明确的python数据帧

序列的真值是不明确的python数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我是新来的。我构建了一个小函数,现在总是出现以下错误: 级数的真值是模糊的。使用a.empty,a.bool(), a、 item()、a.any()或a.all() 我知道这个错误已经在另一个问题中讨论过了,但是我真的不知道我应该做什么不同的事情以及错误是如何发生的 这是我的简单函数: def relativeWinner(): if df['GoldSummer'] >0 & df['GoldWinter'] >0: df['diff'] = ab

我是新来的。我构建了一个小函数,现在总是出现以下错误:

级数的真值是模糊的。使用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()

有谁能告诉我这里出了什么问题以及我将如何解决它吗?

至于为什么会出现这个特定问题,请参阅本文:

关于您的代码,请尝试以下方法:

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'])]

如果df['GoldSummer']或df['GoldWinter']不大于0,会发生什么情况?您可能需要一个“else”语句。请考虑
df['GoldSummer']>0和df['GoldWinter']>0
返回的内容。。。它返回一系列布尔值:
[True,True,False,True,False]
。你把这个传递给一个if条件,但是<代码>熊猫> <代码>不知道你想考虑什么样的数组……应该是“代码>真的<代码> >因为它至少有一个<代码>真的<代码>(然后使用<代码>,(或)>代码>,它应该是<代码> false <代码>,因为不是所有的都是<代码>真的< /代码>?(使用
all
)。也许您想检查序列是否有任何值(使用
.empty
),您可以执行类似
if(df['GoldSummer']>0&df['GoldWinter']>0)的操作。all():
@threxx Ah!这一点让我很难受:
&
操作符的优先级搞砸了,请明确:
如果((df['GoldSummer']>0)和(df['GoldWinter']>0)).all():
换句话说,按位操作符(
&
^
)的优先级高于比较操作符(
)因为运算符优先<代码>(df['GoldSummer']>0和df['GoldWinter']>0)
0&df['GoldWinter']
首先减少(在本例中,使用矢量化的按位and!),让您可以与另一个系列进行比较!带你回到原来的问题!