熊猫,真值和歧义值之间有什么区别? ValueError:系列的真值不明确

时间:2020-04-25 18:33:21

标签: python pandas

在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:系列的真值不明确。使用空 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: The truth value of a Series is ambiguous

我意识到,当封装在[]之间时,表达式x == x值会从一个模糊的thuth值变为一个true值。 我对它的含义有一个模糊的想法,但是如果有人可以启发我更多有关它的信息,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的第二个示例没有导致ValueError,因为您正在检查已定义的Python列表(在本例中为[x == x])的真实值。相反,没有定义系列的真值(如您所述)。

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