首页 > 解决方案 > ValueError:使用 .apply(lambda) 时,Series 的真值不明确

问题描述

我从此代码中收到值错误,如果在 my_array 中找到“id”,我想将其标记为 True

df['exist'] = df['id'].apply(lambda x: True if df['id'].isin(my_array) else False)

我知道值错误可能是由于在代码中使用'and'、'or'而不是'&'、'|'引起的。但是,我没有使用任何这些。

标签: pandas

解决方案


df['id'].isin(my_array)本身是一个系列,并且if df['id'].isin(my_array)会抛出该错误,因为 Python 不知道如何将系列评估为单个True/False.

只需使用isin没有任何apply

df['exist'] = df['id'].isin(my_array)

推荐阅读