当前位置: 首页 > 知识库问答 >
问题:

使用np.where在使用.any()[重复]后返回错误

解河
2023-03-14

我正在处理一个需要根据多种条件创建大量标志的数据帧。我使用的是np.where,但现在我遇到了这个错误

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

为了可复制性和简单性,我只将产生错误的代码部分与使用的列一起共享。正在使用的数据帧:

     Data  Uniques  day_a1  day_a2  day_a3
0       1        1       3     NaN     NaN
1       2        2      14    15.0     NaN
2       2        1      10    10.0     NaN
3       3        1      10    10.0    10.0
802     2        2      12     NaN    29.0
806     1        1      29     NaN     NaN

生成错误的代码:

df['flag_3.3.3.1.1'] = np.where(
    (
        (df['Data'] == 3) & 
        (df['day_a1'] != 10) & 
        (df['Uniques'] == 3) & #I ran this separately and it was fine
        (df['day_a1'] > 27 or df['day_a1'] < 4).any()),'flag',np.nan)

我似乎仍然有问题后,密码. any()后的.

共有1个答案

陈畅
2023-03-14

试着替换

(df['day_a1'] > 27 or df['day_a1'] < 4)

((df['day_a1'] > 27) | (df['day_a1'] < 4))

注意使用了|和附加的括号表示优先级。

 类似资料:
  • 我在Java中有一个与MySQL连接的多类项目,我可以与这个SQL数据库建立连接,但当我试图将它读入数组时,它得到的是废话,而不是所请求的信息。我做错了什么? 它在sql定义下面出现了一条弯曲的线条,说它们从来没有被读取过,但我就是不明白为什么会这样!它构建得很好,可以看到数据库中有行,但它返回以下内容: 显示“java2assignment3.dvd@5e0010bc”和“java2assign

  • 我有一个包含两个碎片的mongodb集群,每个碎片是一个包含3个节点的复制集,还有一个包含3个节点的配置服务器集群。 除了尝试使用$out运算符在聚合管道的末尾编写集合之外,一切似乎都很正常: 这将返回以下错误: 执行脚本。 错误:assert:command failed:{“ok”:0,“errmsg”:“listindexes failed:{ok:0.0,errmsg:\”not mast

  • 我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?

  • 不久前,我从https://pip.pypa.io/en/stable/installing/在我意识到我的python版本allready附带了pip之前。我成功地使用它下载了pygame,但现在我正在尝试下载numpy,无论我尝试了什么,它都会返回下面的错误。 我已经尝试重新安装pip和python,但没有任何改变。我认为这与我不小心从上面的链接下载pip并拥有两个版本的pip有关。当我卸载p

  • (在本例中,假设是的有效索引,并且代码不会引发) 编辑:问题不是关于使用的必要性,而是关于我选择这样做时在性能上的任何收益或损失。没有它,就会创建一个变量。使用它,返回的值被存储在其他地方,也许是以一种更有效的方式。