首页 > 解决方案 > 熊猫,真值和模棱两可的真值有什么区别?ValueError: Series 的真值不明确

问题描述

在 python 3. 使用库 pandas 时,使用休闲代码时

    def check_question(df):
       mylambda = lambda x: x if x==x else x
       return df.apply(mylambda)

    print(check_question(df))

控制台给出了闲置的 ValueError:

ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

经过几次尝试,休闲代码修复了它:

   def check_question(df):
       mylambda = lambda x: x if [x==x] else x
       return df.apply(mylambda)

    print(check_question(df))

我知道,这与熊猫库有关:Stackoverflow:一个系列的真值是模棱两可的

我意识到,当 [] 之间的封装时,表达式 x==x 值从不明确的值变为真值。我对它的含义有一个模糊的概念,但如果有人能启发我更多关于它的知识,我将不胜感激。

标签: pythonpandas

解决方案


您的第二个示例不会导致 a ValueError,因为您正在检查定义的 Python 列表(在本例中[x == x])的真值。相反,没有定义 Series 的真值(正如您所提到的)。

另请参阅https://docs.python.org/3/library/stdtypes.html#truth-value-testing


推荐阅读