首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python-pandas:序列的真值是歧义错误

Python-pandas:序列的真值是歧义错误
EN

Stack Overflow用户
提问于 2021-01-17 19:09:15
回答 1查看 43关注 0票数 1

在pandas_dataframe中,我尝试将数值转换为分类值

代码语言:javascript
运行
复制
df['SalePrice_band']=0
df.loc[df['SalePrice']<50000 , 'SalesPrice_band']=1
df.loc[df['SalePrice']>=50000 & df['SalePrice']<100000 , 'SalesPrice_band'] = 2
df.loc[df['SalePrice']>=100000 & df['SalePrice']<125000 , 'SalesPrice_band'] = 3
df.loc[df['SalePrice']>=125000 & df['SalePrice']<150000 , 'SalesPrice_band'] = 4
df.loc[df['SalePrice']>=150000 & df['SalePrice']<175000 , 'SalesPrice_band'] = 5

但是,上面的代码出现的错误是: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。

因此,我阅读了错误消息并检查了

代码语言:javascript
运行
复制
df.loc[df['SalePrice']<50000 , 'SalesPrice_band']=1

上面的就可以了。

代码语言:javascript
运行
复制
 df['SalePrice']>=50000 & df['SalePrice']<100000

但在这里,我通过两个bool_bin连接时出错

因此,我尝试这样做:

代码语言:javascript
运行
复制
(df['SalePrice']>=50000 & df['SalePrice']<100000).all()

但不起作用;仍然错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。

我该怎么处理呢?

EN

回答 1

Stack Overflow用户

发布于 2021-01-17 19:13:55

在Pandas中,您必须将所有布尔检查放在括号中,如下所示:

代码语言:javascript
运行
复制
df.loc[(df['SalePrice']>=50000) & (df['SalePrice']<100000) , 'SalesPrice_band'] = 2

而不是这样:

代码语言:javascript
运行
复制
df.loc[df['SalePrice']>=50000 & df['SalePrice']<100000 , 'SalesPrice_band'] = 2

最新版本将导致您提供的错误

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65759871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档