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

我不明白为什么我的if循环不能正常工作[重复]

陆宝
2023-03-14

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

为什么会这样?因为我指定了在不满足任何条件的情况下分配给列的值。

if 11 >= df['age'] <= 20:
    df['age_enc'] = 20
elif 21 >= df['age'] <= 25:
    df['age_enc'] = 25
elif 26 >= df['age'] <= 30:
    df['age_enc'] = 30
elif 31 >= df['age'] <= 35:
    df['age_enc'] = 35       
elif 36 >= df['age'] <= 40:
    df['age_enc'] = 40    
elif 41 >= df['age'] <= 50:
    df['age_enc'] = 50  
elif 51 >= df['age'] <= 60:
    df['age_enc'] = 60  
else:
    df['age_enc'] = 100;

共有1个答案

皇甫伟彦
2023-03-14

因为df['age']在pandas中指定了一个序列类型,而它不是一个值,所以您不能简单地编写df['age']<=20并且它将是任意值或所有值,所以您可以简单地使用df['age'].all()<=20

要解决您的问题,您可以使用pandas过滤,如下所示:

df_part = df[(df['age'] <= 20) & (df['age' >= 11)]
df_part['age_enc'] = 20

然后可以将这些数据帧部分合并在一起

 类似资料:
  • 下面是一个链表的简单实现。我刚刚添加了相关代码。首先,我向列表中添加一些值,10,990和10000。当我搜索相同的值时,对于key=10,我得到true,但是对于key=990和key=10000得到false,尽管它应该是true。另外,如果我将第二个值从990更改为99,并搜索key=99,这一次我得到的是true。 我不确定是否使用泛型类型。我想我在那里做错了什么。因为如果我用int替换泛

  • 当用户键入以下内容的答案时:system.out.println(“键入数字”); 它不会继续到我的代码的下一部分。

  • 这是我试图解决的问题。 “墨西哥人口为6200万,正以7%的年增长率增长。美国目前的人口为2.8亿,正以2%的年增长率增长。如果这两个国家要保持目前的增长率,墨西哥人口将在多少年内超过美国的一半?你的计划应该回答这个问题。” 好的,这就是我目前掌握的代码。当我运行程序时,我得到了这个错误。 不太确定如何修复它。有人能帮忙吗?:/ 编辑 对于任何想知道我最终让代码工作的人。这是代码。 导入java.

  • 还不起作用。所以我放弃链接,我只是编码:

  • 我使用react和laravel开发了一个应用程序来显示酒店列表。当用户点击一个单一的酒店,我希望该酒店的细节显示在一种类型的‘单一’视图。然而,尽管在主列表视图中,我使用正确的路由模式链接到单个页面,并且我在路由器中定义了该模式,但当我单击该链接时,我会被带到一个“404 not found”页面。 编辑文章的编辑链接也是如此。 任何关于如何解决这个问题的想法都将非常感谢! 谢谢, 罗伯特·杨

  • 尽管有值,但我不能得到一个用户的值的和时间。 即使用户17有工作时间值,我也会在sumTW列中得到该用户的NULL值。我该怎么解决? 这就是我的查询看起来的样子: 下面是表格代码: (这个表和原来的不一样,原来的有外键。我去掉它们只是为了能够再现同样的问题,同样的问题被报告了)。